问题描述:
如果一个字符串可以有某个长度为K的字符串重复多次得到,我们说该串一k为周期,例如abcabcabcabc以3为周期,(
注意它也可以以6和12为周期)。输入一个长度不超过80 的串,输出它的最小周期。
样列输入:HoHoHo
样列输出:2
分析:
我们可以从小到大枚举各个周期;一旦符合就输出。
代码:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
char a[100];
int i,j,len;
cin>>a;
len=strlen(a);
for(i=1;i<=len;i++)
if(len%i==0)
{
int ok=1;
for(j=i;j<len;j++)
if(a[j]!=a[j%i]){
ok=0;
break;
}
if(ok){cout<<i<<endl;break;}
}
return 0;
}