POJ 2406 Power Strings

mac2022-06-30  131

KMP第二题   这次知道了前缀数组的另一奇葩所在。

题目大意:

给出一个字符串,某个子串链接n次产生的,求最大的n。

这一看KMP算法正合适啊,就啪啪写上了,但是WA。之后发现了这样子一组数据:aabaabaa

得特判啊~~

见代码:

#include <stdio.h> #include <string.h> char s[1000005]; int num[1000005]; int main() { int n,case1=1; while(scanf("%s",s),s[0]!='.') { int j=-1; num[0]=-1; n=strlen(s); for(int i=0;i<n;) { if(j==-1||s[i]==s[j])num[++i]=++j; else j=num[j]; } if(n%(n-num[n])==0) printf("%d\n",n/(n-num[n])); else puts("1"); } return 0; }

转载于:https://www.cnblogs.com/lin375691011/p/3996668.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)