如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串以k为周期。例如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。
#include <iostream>
#include <string.h>
using namespace std;
char s[90];
int main()
{
cin >> s;
int len = strlen(s); //计算字符串长度
int k = 1; //先假设周期为1
int w = 0; //累计相同字段的个数
for ( int i = 0; i <= len - k; i ++){
if ( len % k == 0){
if(s[i] != s[i+k]) {
k ++;
i = 0;
w = 0;
}else{
w ++;
}
if ( w == len - k){
break;
}
} else{
k ++;
i = 0; //重新检查
}
}
cout << k;
return 0;
}