简要思路:从周期为1递增往上试
#include<stdio.h>
#include<string.h>
int main()
{
int n;scanf("%d",&n);
char a[82];
while(n--)
{ memset(a,0,sizeof(a));
int t,i,l,j;int flag=1;
scanf("%s",&a);
for(t=1;t<=41;t++)
{
if(t>strlen(a)/2) {l=strlen(a);break;}
if((strlen(a)%t)!=0) continue;
for(i=0;i<strlen(a)-t;i+=t)
{
for(j=i;j<i+t;j++)
{
if(a[j]!=a[j+t]) {flag=0;break;}
else if(a[j]==a[j+t]) flag=1;
}
if(flag) {l=t;continue;}
else break;
}
if(flag) break;
}
if(n>=1) printf("%d\n\n",l);
else printf("%d\n",l);
}
}