Problem:
题意翻译
如果一个字符串可以由某个长度为k 的字符串重复多次得到,则称该串以k 为周期。例如,abcabcabcabc 以3 为周期(注意,它也以6 和12 为周期。
输入一个长度不超过80 的字符串,输出其最小周期。
想法 :
-
已知定义了字符串s,那么,类似于判断素数一般判断。
Code:
for(i=1;i<=strlen(s);i++){//i作为周期,从小到大判断
if(strlen(s)%i==0){//当且仅当i的倍数正好是长度strlen时,i才能作为有效周期
for(j=i;j<=strlen(s);j++){//判断之后的字符是否符合周期
if(s[j]!=s[j%i])break;
}
if(j==strlen(s)){//同理素数简单判断条件
cout<<i<<endl;
break;
}
}
}