周期串(刘汝佳白皮书)
如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如,abcabcabc以3为周期(注意,它也以6和12为周期)。输入一个长度不超过80的串,输出它的最小周期。
样例输入:HoHoHo
样例输出:2
代码如下:
View Code
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 int main() 6 { 7 char word[100]; 8 scanf("%s",word); 9 int len=strlen(word); 10 for(int i=1;i<=len;i++) 11 { 12 if(len%i==0) 13 { 14 int ok=1; 15 for(int j=i;j<len;j++) 16 { 17 if(word[j]!=word[j%i]) 18 { 19 ok=0; 20 break; 21 } 22 } 23 if(ok) 24 { 25 printf("%d\n",i); 26 break; 27 } 28 } 29 } 30 return 0; 31 }
Do one thing , and do it well !