Kmp求next的值(下标从0开始的)

来源:互联网 发布:数据库审计作用是什么 编辑:程序博客网 时间:2024/04/27 01:52
直接上代码:
#include<iostream>#include<cstring>#include<cstdio>using namespace std;int next[100];int n;int Next(string a){   int i,j;   next[0]=-1;   next[1]=0;   for(i=2;i<n;i++)   {       j=next[i-1];       while(j!=-1 && a[i-1]!=a[j])       {           j=next[j];       }       next[i]=j+1;   }}int main(){    int i;   string a;   while(cin>>a)   {       n=a.size();       //cout<<n<<endl;       Next(a);       for(i=0;i<n-1;i++)        cout<<next[i]+1<<" ";        cout<<next[i]+1<<endl;   }   return 0;}

原创粉丝点击