解题思路
这道题实际上就是算相同的字符串出现了几次,这里我引用了步长stp,思路是判断当前的字符在多少步之后会出现相同的字符,如果每个字符都在stp步长后出现和自己相同的字符,则总共的次方则为总数除以步长,得解。
样例
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
string s;
while(cin >> s){
if(s == ".") break;
int count = s.size();
int stp = 1;
for (int i = 0; i < count; i ++ ){
if(s[i] != s[(i+stp)%count]){
stp++;
}
// cout << stp;
}
cout << count/stp << endl;
}
return 0;
}