周期串(Periodic Strings, UVa455)
如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串以k为周期。例
如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。
输入一个长度不超过80的字符串,输出其最小周期。
#include<stdio.h>
#include<string.h>
#define shu 80
int main()
{char a[shu];
int n,j;
scanf("%s",&a);
n=strlen(a);
for(int i=1;i<=n;i++)
{if(n%i==0)
{for(j=i;j<n;++j)
if(a[j]!=a[j%i])
break;
if(j==n)
{printf("%d\n",i);
break;
}
}
}
return 0;
}
解题想法:对于满足的周期应使得a[j]==a[j%i]均成立。