///http://acm.hdu.edu.cn/showproblem.php?pid=1238
///题意:给出n个字符串,求出所有串的公子串的最大长度,注意的是正反都行
#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<cctype>
#include<iomanip>
using namespace std;
const int inf=10000000;
string f[105];
int main() {
int T; cin>>T;
while(T--) {
int n,q; cin>>n;
for(int i=0; i<n; ++i)
cin>>f[i];
for(int j=f[0].size()-1; j>=1; --j) {///控制长度
for(int i=0; i<=f[0].size()-j; ++i){///控制起始位置
string s1,s2; s1.assign(f[0],i,j);///顺序的
s2=s1; reverse(s2.begin(),s2.end());///逆序的
q=1;
for(int k=1; k<n; ++k)///查找
if(f[k].find(s1)==string::npos && f[k].find(s2)==string::npos)
{ q=0; break; }
if(q){///在所有串中都能找到
cout<<s1.size()<<endl;
break;
}
}
if(q)break;
}
if(!q)cout<<0<<endl;///所有串没有任何相同的字符
}
return 0;
}
HDU 1238 字符串
最新推荐文章于 2019-02-09 15:08:41 发布