题意:给出一个字符串,找出它的最小的周期,枚举从1到len的周期,看是否满足。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; char s[]; int main()
{
int ncase,t,i,k,j,len;
scanf("%d",&ncase);
while(ncase--)
{
scanf("%s",s);len=strlen(s); for(t=;t<len;t++)//枚举周期从1到len1来找最小的循环节
{
if(len%t) continue;//如果不能整除的话就不是周期
int flag=;
for(j=,k=;j<len;k=k%t)
if(s[j++]!=s[k++]) flag=; if(flag) break;
} printf("%d\n",t);
if(ncase!=) printf("\n");
}
}