POJ 2752 Seek the Name, Seek the Fame G++ 哈希未实现 KMP背
程序员文章站
2022-07-15 10:45:49
...
#include <iostream>
#include <string>
#include <cstring>
#include <cstdio>
using namespace std;
//博友有讲解KMP next数组的图 背 对应图的另一个博友程序 背 哈希未实现
char s[400008];
int nex[400012];
int da[400012];
int main()
{
while(scanf("%s",s)!=EOF)
{
int n=strlen(s);
int i=0,j=-1;
nex[0]=-1;
while(i<n)
{
if(j==-1 || s[i]==s[j])
{
i++;
j++;
nex[i]=j;
}else
{
j=nex[j];//
}
}
//cout<<"hello"<<endl;
i=n;
int js=1;
da[0]=n;//抄博友
while(nex[i]!=0)
{
da[js++]=nex[i];
i=nex[i];
}
for(int i=js-1;i>=0;i--)
{
printf("%d ",da[i]);
}
printf("\n");
}
return 0;
}