如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如,abcabcabc以3为周期(注意,它也以6和12为周期)。输入一个长度不超过80的串,输出它的最小周期。
样例输入:abcabc
样例输出:3
#include<iostream>
using namespace std;
int main()
{
string s;
cin >> s;
int sz = s.length();
for(int i = 2 ; i < sz ; i++)//这个遍历的是k
{
if(sz % i != 0)//减少遍历的情况
{
cout << "不是周期字符串" << endl;
break;
}
for(int j = 1 ; j < sz;j++)//这个遍历的是内部运算
{
if(s[j] == s[j + i])
{
if(j + i == s.length() - 1)
{
printf("%d\n",i); return 0;
}
}
}
}
return 0;
}