这里引用一下大神的网站
理解KMP算法 作者:July、saturnma
#include<iostream>
#include<cstdio>
using namespace std;
int next[10010];
void pre() //预处理next数组
{
int j=0;
for(int i=1;i<=m;i++)
{
while(b[i]!=b[j+1])
j=next[j];
if(b[i]==b[j+1]) j++;
next[i]=j;
}
}
void kmp()
{
int j=0
for(int i=0;i<=n;i++)
{
while(j!=0&&a[i]!=b[j+1])
j=next[j];
if(a[i]==a[j+1]) j++;
if(j==m)
{
cout<<i;
j=next[j];
}
}
int main()
{
char[]
}