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;} 

原创粉丝点击