题目: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;
}