HDU 1238 字符串
来源:互联网 发布:windows 终端软件 编辑:程序博客网 时间:2024/05/26 17:43
///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;}