#include<stdio.h>
#include<string.h>
int main()
{
char s[80];
int T,i,j;
scanf("%d",&T);
while(T--)
{
bool found=false;
scanf("%s",s);
int len=strlen(s);
for(i=1;i<=len/2;i++)//找因数,每个小于len/2的因数都可能是周期
{
if(len%i==0)
{
for(j=i;j<=len;j++)
if(s[j%i]!=s[j])break;//j%i是周期的下标,j是总串得下标
if(j==len){printf("%d\n",i);found=true;break;}
}
}
if(!found)printf("%d\n",len);
if(T)putchar('\n');//注意这里,不写得话会PE,很恶心
}
return 0;
}
找周期?abcabcabc得长度为9,因数为1,3,所以这两个数都可能是周期,依次尝试。如果都不对,那一定是9,本身
从最小的开始查找,一旦输出肯定就是最小的了。
注意下判断是否为正确周期得方式
if(s[j%i]!=s[j])break;//j%i是周期的下标,j是总串得下标
if(s[j%i]!=s[j])break;//j%i是周期的下标,j是总串得下标