POJ2752--Seek the Name, Seek the Fame

Posted xiongchongwen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ2752--Seek the Name, Seek the Fame相关的知识,希望对你有一定的参考价值。

题目在这儿。

 

 

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<queue>
using namespace std;
char s[400001];
int len,next[400001],sum[400001];
void get_next(int len)
    int i=0,j=-1;
    next[0]=-1;
    while(i<len)
        if((j==-1)||(s[i]==s[j]))
            i++;
            j++;
            next[i]=j;
        
        else
            j=next[j];
        
    

int main()
    while(scanf("%s",s)!=EOF)
        int k=0;
        len=strlen(s);
        get_next(len);
        for(int i=len;i!=0;)
            sum[k++]=next[i];
            i=next[i];
        
        for(int i=k-2;i>=0;i--)
            printf("%d ",sum[i]);
        
        printf("%d\n",len);
    
    return 0;

  

通过KMP算法来处理字符串匹配的问题。

最好用优化版的代码,适用面广--佚名。

 

以上是关于POJ2752--Seek the Name, Seek the Fame的主要内容,如果未能解决你的问题,请参考以下文章

POJ 2752 Seek the Name, Seek the Fame(KMP求公共前后缀)

POJ 2752 Seek the Name, Seek the Fame

POJ2752 Seek the Name, Seek the Fame

POJ 2752 Seek the Name, Seek the Fame

poj2752 Seek the Name, Seek the Fame

poj 2752 Seek the Name, Seek the Fame