首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2013-10-27 
Kmp求next的值(下标从0开始的)#includeiostream#includecstring#includecstdiousing namespace std

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

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

热点排行