字符串最小周期问题"/>
字符串最小周期问题
如果一个字符串可以由某个长度为K的字符串重复多次得到,我们说该串以k为周期。例如abcabcabc以3为周期(注意,它也可以6或12为周期)。输入长度不超过80的字符串,输出它最小周期。样例输入:HoHoHo(EOF结束)
样例输出:2
由于是判断最小周期,所以肯定是从1开始一个一个增大周期,一旦符合条件就输出.
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
int main()
{
char s[100];
scanf("%s",s);
int i,j;
int len = strlen(s);
for(i=1;i<=len;i++)
{
if(len%i == 0)
{
bool is = true;
for(j=i;j<len;j++)
{
if(s[j]!=s[j%i])
{
is = false;
break;
}
}
if(is)
{
printf("%d",i);
break;
}
}
}
return 0;
}
更多推荐
字符串最小周期问题
发布评论