poj2752 Seek the Name, Seek the Fame

来源:互联网 发布:单词朗读软件 知乎 编辑:程序博客网 时间:2024/06/05 11:01

KMP前缀数组的理解与应用(一)

poj2752,

#include<stdlib.h>#include<stdio.h>#include<string.h>#define N 400100char s[N];int a[N],next[N];void Creat_next(){    int len=strlen(s);    int j=0;    for(int i=1;i<len;i++)    {        while(j>0&&s[i]!=s[j])            j=next[j-1];        if(s[i]==s[j])            j++;        next[i]=j;    }}int main(){    while(~scanf("%s",s))    {        Creat_next();        int k=0;        int i=strlen(s)-1;        while(next[i]>0)        {            a[k]=next[i];            k++;            i=next[i-1];        }        for(i=k-1;i>=0;i--)            printf("%d ",a[i]);        printf("%d\n",strlen(s));    }    return 0;}


0 0
原创粉丝点击