问题 C: 周期串plus
时间限制: 1 Sec 内存限制: 128 MB
提交: 223 解决: 106
[提交][状态][讨论版]
题目描述
如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如abcabcabcabc以3为周期(当然他也以6,12为周期)。输入一个长度不超过100000的串,输出他的最小周期。
输入
多组测试数据,每组仅一行为一个仅有大写字母组成的字符串。
输出
对于每组数据输出该字符串的最小周期。
样例输入
HOHO
样例输出
2
提示
心得:暴力求解
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
char str[100100];
int main(void)
{
while(~scanf("%s",str))
{
int l=strlen(str),i=1,j,res=l,fg;
while(i<=l)
{
fg=0;
for(j=0;j<l-i;j++)
if(str[j]!=str[j+i])
{
fg=1;break;
}
if(fg==0)
{
res=i;break;
}
i++;
}
printf("%d\n",res);
}
return 0;
}