字符串匹配
#include<bits/stdc++.h>
using namespace std;
char s[1000100];
int main()
{
int n;
scanf("%d",&n);
getchar();
while(n--){
gets(s);
int flag=0,p=0;
int len=strlen(s),i=0,j=0;
int l=len/3;
for(;l>=1;l--){
flag=0;
for(j=len-1,i=l-1;i>=0&&j>=len-len/3;j--,i--){
if(s[i]!=s[j]) { flag=1; break; }
}
if(flag==0) break;
}
while(l){
flag=0;
for(int j=l;j<len-l;j++){
if(s[j]==s[0]){
p=1;
for(int k=j+1;k<len-l&&p<l;k++){
if(s[k]==s[p]){ p++; } else break;
}
if(p==l) { flag=1; break; }
}
}
if(flag==1) break;
for(l--;l>=1;l--){
flag=0;
for(j=len-1,i=l-1;i>=0&&j>=len-len/3;j--,i--){
if(s[i]!=s[j]) { flag=1; break; }
}
if(flag==0) break;
}
}
printf("%d\n",p);
}
return 0;
}
/*
123456123
2
*/