版权声明:转载请附上原文链接哟! https://blog.csdn.net/weixin_44170305/article/details/89742475
如花美眷,似水流年,回得了过去,回不了当初。
题目描述
如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如abcabcabcabc以3为周期(当然他也以6,12为周期)。输入一个长度不超过100000的串,输出他的最小周期。
输入
多组测试数据,每组仅一行为一个仅有大写字母组成的字符串。
输出
对于每组数据输出该字符串的最小周期。
样例输入
复制样例数据
HOHO
样例输出
2
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
string sh;
while(cin>>sh)
{
int len=sh.size(),i,n,j;
for(i=1;i<len;i++)
{
n=1;
if(len%i!=0)
continue;
for(j=i;j<len;j++)
{
if(sh[j]!=sh[j-i])
{
n=0;
break;
}
}
if(n)
break;
}
if(n)
cout<<i<<endl;
}
return 0;
}