题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1238
这题枚举子串和它的反串暴力就能过
#include <stdio.h>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cmath>
using namespace std;
char p[105][105];
char str1[105];
char str2[105];
int len[105];
int main(void)
{
int t;
scanf("%d",&t);
while(t--){
int n;
scanf("%d",&n);
int ans=0;
for(int i=1;i<=n;i++){
scanf("%s",p[i]);
len[i]=strlen(p[i]);
}
for(int i=0;i<len[1];i++){
for(int j=i;j<len[1];j++){
for(int k=i;k<=j;k++){
str1[k-i]=p[1][k];
str2[k-i]=p[1][i+j-k];
}
str1[j-i+1]=0;
str2[j-i+1]=0;
int flag=1;
for(int k=2;k<=n;k++){
if((!strstr(p[k],str1))&&(!strstr(p[k],str2))){
flag=0;break;
}
}
if(flag)ans=max(ans,j-i+1);
}
}
printf("%d\n",ans);
}
return 0;
}