您的位置:首页 > 其它

UVa 455 - Periodic Strings

2014-11-11 21:32 288 查看
一开始想的是求出每个字符出现的次数并且储存,并且每个字符的次数应该相同,然后用字符串的长度除以这个次数。但是这个解法不适合heedheedheed这样的或者12112121211212这样的问题求解。
所以采用枚举最小周期的大小并测试,直到比较通过。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char str[104];
int main()
{
int n;
while (~scanf("%d",&n)) //这里等于while(scanf("%d",&n) != EOF)
while (n --)
{
scanf("%s",str);
int len = strlen(str);
int k,i;
for (k,i = 1 ; i <= len ; ++ i)
if (len%i == 0)
{
for (k = i ; k < len ; ++ k)
if (str[k] != str[k%i])
break;
if (k == len)
{
printf("%d\n",i);
break;
}
}
if (n) printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: