poj1226

来源:互联网 发布:淘宝网一件代发赚钱吗 编辑:程序博客网 时间:2024/05/21 06:21

题目:http://poj.org/problem?id=1226

题意:找出一个在所有字符串中都出现的字串(也可以使这个字串倒过来)  

想法:数据量才100.。。。直接暴力枚举。。strstr函数用一下就可以了。。后来看了看别人的解题报告,有说是后缀数组什么的。。我也得去看看了。。


AC代码:

#include <iostream>#include <cstring>#include <cstdio>using namespace std;char str[110],str1[110];char x[110][110];char ss[110];int n;int main(){    //freopen("123.txt","r",stdin);    int T;    cin>>T;    while(T--){        cin>>n;        int len=110;        for(int i=0;i<n;i++){            scanf("%s",x[i]);            if(strlen(x[i])<len){                len=strlen(x[i]);                strcpy(ss,x[i]);            }        }        int ans=0;        for(int i=0;i<len;i++){            for(int j=i;j<len;j++){                int l=0;                for(int k=i;k<=j;k++){                    str[l++]=ss[k];                }                l=0;                for(int m=j;m>=i;m--){                    str1[l++]=ss[m];                }                str[l]=str1[l]='\0';                                int mx=0;                for(mx=0;mx<n;mx++){                    if((strstr(x[mx],str)==NULL) && (strstr(x[mx],str1)==NULL )){                            break;                    }                }                                if(mx>=n)    ans=max(l,ans);            }        }        cout<<ans<<endl;    }    return 0;}


0 0
原创粉丝点击