//很纯很纯的水题 //从长度len---1依次枚举,数据相当弱,就这样过了 #include<stdio.h> #include<algorithm> #include<string.h> using namespace std; char str[110][110],st[110],en[110]; int n,m,t; bool isok(char *ch,char *cg,int len,int id) { int j,k,l; for(j=0; j+len<=strlen(str[id]); j++) { bool tmp1=false,tmp2=false; for(k=j,l=0; l<len; k++,l++) { if(ch[l]!=str[id][k]) tmp1=1; if(cg[l]!=str[id][k]) tmp2=1; } if(!tmp1||!tmp2) return 1; } return 0; } int solve(int id) { int i,j,k,len=strlen(str[id]),maxl; maxl=len; while(len) { for(i=0; i+len<=maxl; i++) { for(j=i,k=0; k<len; j++,k++) { st[k]=str[id][j]; en[k]=str[id][len+i-k-1]; } for(j=k=0; j<n; j++) if(!isok(st,en,len,j)) { k=1;break; } if(!k) return len; } len--; } return 0; } int main() { int i,j,k,id,maxl; scanf("%d",&t); while(t--) { scanf("%d",&n); for(i=id=0,maxl=110; i<n; i++) { scanf("%s",str[i]); if(strlen(str[i])<maxl) { maxl=strlen(str[i]),id=i; } } printf("%d\n",solve(id)); } return 0; }