4754355_wa.cpp

来自「部分PKU上的源码」· C++ 代码 · 共 85 行

CPP
85
字号
#include<iostream>
#include<string>
using namespace std;
int n;
string first,t;
string q[1000];
bool used[1000];
int tail;
bool nothave(string x)
{
	int i;
	for(i=0;i<tail;i++)
	{
		if(x==q[i]) return false;
	}
	return true;
}
void getall()
{
	int i,j;
	tail=0;
	for(i=0;i<first.length();i++)
	{
		string x;
		for(j=i;j<first.length();j++) 
		{
			x+=first[j];
			if(nothave(x))
			{
			q[tail]=x;
			tail++;
			}
		}
	}	
}
void match(string t)
{
	int i;
	for(i=0;i<tail;i++)
	{
		if(used[i]==false&&t.find(q[i])==-1) used[i]=true;
	}
}
string getan()
{
	int i;
	string re;
	for(i=0;i<tail;i++)
	{
		if(used[i]==false)
		{
			if(q[i].length()>re.length()) re=q[i];
			else
				if(q[i].length()==re.length())
			{
				if(re.compare(q[i])>0)re=q[i];
			}
		}
	}
	return re;
}
int main()
{
	int testnumber,i;
	cin>>testnumber;
	while(testnumber>0)
	{
		cin>>n;
		cin>>first;
		tail=0;
		getall();
		memset(used,false,sizeof(used));
		for(i=1;i<n;i++)
		{
			cin>>t;
		///	cout<<t<<endl;
			match(t);
		}
		string result=getan();
		if(result.length()<3) cout<<"no significant commonalities"<<endl;
		else cout<<result<<endl;
		testnumber--;
	}
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?