woshizhazha的专栏

//还是next数组的一个运用,,但是还是要注意一个小细节

//我给出一组测试数据ababa;

#include <iostream>#include<stdio.h>#include<string.h>using namespace std;const int maxn=1000005;int next[maxn];char str[maxn];void getnext(int s){int i;int j=0;next[1]=0;for(i=2;i<=s;i++){while(j>0&&str[j+1]!=str[i])j=next[j];if(str[j+1]==str[i])j++;next[i]=j;}}int main(){while(scanf("%s",&str[1])&&str[1]!='.'){int chang=strlen(&str[1]);getnext(chang);int ans;if(chang%(chang-next[chang])==0){ans=chang/(chang-next[chang]);}elseans=1;printf("%d\n",ans);}return 0;}

不求与人相比,但求超越自己,要哭就哭出激动的泪水,要笑就笑出成长的性格。

woshizhazha的专栏

相关文章:

你感兴趣的文章:

标签云: