周期串
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
1
-
描述
-
一个字符串可以由长度为k的字符串重复多次得到,我们说该串以k为周期,例如abcabcabcabc 以3为最小周期(注意它也可以以6和12为周期)
我们输入一个不超过200的串,输出它的最小周期(字符串区分大小写)
-
输入
- 有多组测试数据,每组输入一个字符串 输出
- 输出相应字符串的最小周期 样例输入
-
abcabcabcabc abcd
样例输出
-
3 4
来源
#include<stdio.h> #include<string.h> char str[205]; int main() { while(scanf("%s",str)!=EOF) { int len=strlen(str); for(int k,i=1;i<=len;++i) { if(len%i==0) { for(k=i;k<len;++k) { if(str[k]!=str[k%i]) break; } if(k==len) { printf("%d\n",i); break; } } } } return 0; } //求一个字符串的最小循环长度 //枚举循环节的长度,进行匹配判断,第一个匹配成功的数字就是最小循环长度 //数据较小,直接枚举就行了。