Description
如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如abcabcabcabc以3为周期(当然他也以6,12为周期)。输入一个长度不超过80的串,输出他的最小周期。
Input
多组测试数据,每组仅一行为一个仅有大写字母组成的字符串。
Output
对于每组数据输出该字符串的最小周期。
Sample Input
HOHO
Sample Output
2
这里需要注意的是,字符串长度一定是周期的倍数。
还要满足类似aabbaab aabbaab这样的测试用例。
#include<stdio.h> #include<string.h> int main(void) { char str[80]; while(~scanf("%s",&str)) { int length=strlen(str); int i,j,flag; for(i=1;i<=length;i++) { if((length%i)==0) { flag=1; for(j=i;j<length;j++) { if(str[j]!=str[j%i]) { flag=0; break; } } if(flag==1) { printf("%d\n",i); break; } } } } return 0; }