kmp 的next 数组求法
#include <iostream>
using namespace std;
int main()
{string a ;
cin>>a;
int i,next[100];
//主要程序
next[0]=-1;
i=0;
int j=-1;
while(i<a.length())
{
if(j==-1||a[i]==a[j])
{i++;
j++;
next[i]=j;
}
else {j=next[j];}
}
//
cout<<" ";
for(i=0;i<a.length();i++)
cout<<a[i]<<" ";
cout<<endl;
for(j=0;j<i;j++)
cout<<next[j]<<" ";
cout<<endl;
return 0;
}