直接用暴力法穷举所有情况
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
string str[11];
int main()
{
int T;
cin>>T;
while(T--)
{
int n;
cin>>n;
for(int j=0;j<n;j++)
cin>>str[j];
string result = "";
for(int i=3;i<61;i++)
{
for(int j=0;j<61-i;j++)
{
string tmp = str[0].substr(j,i);
int flag=1;
for(int k=1;k<n;k++)
{
if(str[k].find(tmp) == string::npos)
{
flag=0;
break;
}
}
if( flag && ( tmp.size()>result.size() || tmp.size()==result.size() && tmp<result) )
result = tmp;
}
}
if(result == "")
cout<<"no significant commonalities"<<endl;
else
cout<<result<<endl;
}
}