题目链接:http://bailian.openjudge.cn/practice/1226
#include <stdio.h>
#include <string.h>
int main()
{
char a[100][101],min[101],sub[101],subf[101];
int m,t,n,p,i,j,k,g,h;
scanf("%d",&t);
for(i=1;i<=t;i++)
{
scanf("%d\n",&n);
for(j=0;j<n;j++)
gets(a[j]);
strcpy(min,a[0]);
for(j=1;j<n;j++)
if(strcmp(min,a[j])>0)
strcpy(min,a[j]);
m=strlen(min);
for(j=m;j>=1;j--)
{ for(k=1;k<=m-j+1;k++)
{ strncpy(sub,min+k-1,j); sub[j]='\0';
strcpy(subf,sub);
for(g=0,h=j-1;g<j;g++,h--)
subf[h]=sub[g];
subf[j]='\0';
for(p=0;p<n;p++)
if(strstr(a[p],sub)==NULL && strstr(a[p],subf)==NULL)
break;
if(p<n)
continue;
else
break;
}
if(k<=m-j+1)
break;
}
printf("%d\n",j);
}
return 0;
}