#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define max 101
int main()
{
int i,j,k,t,n,m,min;
char str[max][max],str1[max],str2[max];// str1表示顺序,str2表示逆序
scanf("%d",&m);
while(m--){
scanf("%d",&n);
min=999999999;
t=0;
for(i=0;i<n;i++){
scanf("%s",str[i]);
if(min>strlen(str[i])){
t=i;
min=strlen(str[i]);
}
}
int maxlen=0;
bool flag=true;
for(i=0;i<strlen(str[t]);i++){
for(j=i;j<strlen(str[t]);j++){
for(k=i;k<=j;k++){
str1[k-i]=str[t][k];
str2[j-k]=str[t][k];
}
str1[j-i+1]='\0';
str2[j-i+1]='\0';
for(k=0;k<n;k++){
if(!strstr(str[k],str1) && !strstr(str[k],str2)){
flag=false;
break;
}
}
if(flag && maxlen<strlen(str1))
maxlen=strlen(str1);
flag=true;
}
}
printf("%d\n",maxlen);
}
return 0;
}
hdu1238 Substrings 暴力过 注意剪枝就好了
最新推荐文章于 2021-09-27 17:29:48 发布