HDU 1238 暴力

来源:互联网 发布:centos tinyproxy 编辑:程序博客网 时间:2024/06/03 04:41

找出所有字符串中共同拥有的一个子串,该子串(正、逆字符)是任何一个母串的子串,求该子串的最长长度。

数据规模小,暴力即可。

#include <bits/stdc++.h>using namespace std;string s[110];int main(){    int T,n;    cin>>T;    while(T--)    {        cin>>n;        int sub=0,len=1000;        for(int i=0;i<n;i++)        {            cin>>s[i];            if(len>(int)s[i].size())            {                len=s[i].size();                sub=i;            }        }        int maxn=0;        for(int i=s[sub].size();i>0;i--) //从长到短找子串。        {            for(int j=0;j<s[sub].size()-i+1;j++)            {                string s1,s2;                s1=s[sub].substr(j,i);                s2=s1;                reverse(s2.begin(),s2.end());                int k;                for(k=0;k<n;k++)                {                    if(s[k].find(s1,0)==-1 && s[k].find(s2,0)==-1)                    break;                }                if(k==n && maxn<s1.size())                    maxn=s1.size();            }        }                cout<<maxn<<endl;    }}


原创粉丝点击