https://blog.csdn.net/hguisu/article/details/7676786
1、KMP算法求解什么类型问题?
字符串匹配。给你两个字符串,寻找其中一个字符串是否包含另一个字符串,如果包含,返回包含的起始位置。
2、完整的KMP算法
#include <bits/stdc++.h>
using namespace std;
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define OVERFLOW -2
#define MAXSTRLEN 100
typedef char SString[MAXSTRLEN+1];
//SString example 等价于定义 char example[MAXSTRLEN+1];
void GetNext(SString T,int next[])
{
int i=1,j=0;
next[1]=0;
while(i<T[0])
{
if(j==0||T[i]==T[j])
{
i+=1;j+=1;
next[i]=j;
}
else
{
j=next[j];
}
}
}
int KMPindex(SString S,SString T,int pos)//S主串,T模式串;
{
if(pos<1||pos>S[0]) exit(OVERFLOW);
int i=pos,j=1;
int next[MAXS