欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

POJ 2752 Seek the Name, Seek the Fame G++ 哈希未实现 KMP背

程序员文章站 2022-07-15 10:45:49
...

POJ 2752 Seek the Name, Seek the Fame G++ 哈希未实现 KMP背

#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;
}

POJ 2752 Seek the Name, Seek the Fame G++ 哈希未实现 KMP背