首页 > 代码库 > (Power Strings)sdutoj2475
(Power Strings)sdutoj2475
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char a[1000001];
int next[1000001];
int l;
void Getnext()
{
int j=-1;
int i=0;
next[0]=-1;//忘写了,死循环
while(i<l)
{
if(j==-1||a[i]==a[j])
{
i++;
j++;
next[i]=j;
}
else j=next[j];
}
}
int main()
{
while(scanf("%s",a)!=EOF)
{
if(strcmp(a,".")==0) break;
l=strlen(a);
Getnext();
if(l%(l-next[l])==0)
{
printf("%d\n",l/(l-next[l]));
}
else
printf("1\n");
}
return 0;
}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。