如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如:abcabcabcabc以3为周期,(注意,它也以6和12为周期)。输入一个长度不超过80的串,输出它的最小周期。
输入:hohoho
输出:2
PS:字符串可能有多个周期,但只需求出最小的一个,可以从小到大枚举各个周期,一旦符合条件就输出。
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
char word[100];
//scanf("%s",word);
cin>>word;
int len=strlen(word);
for(int i=1; i<=len; i++)
{
if(len%i==0)
{
int ok=1;
for(int j=i; j<len; j++)
{
if(word[j]!=word[j%i])
{
ok=0;
break;//跳出循环;
}
}
if(ok)
{
//printf("%d\n",i);
cout<<i<<endl;
break;
}
}
}
return 0;
}