每次算KMP的时候都要消耗一张纸来进行模拟,非常的不方便,于是用计算机做了一个可视化的kmp算法出来
输入母串和子串,可以显示出过程来.
效果如下:
代码如下:
//^_^
#pragma warning(disable:4996)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
#include<cstring>
#define MAXSIZE 256
//求模式串t的next函数值
void GetNext(char* t, int next[])
{
//m为模式串t的长度
int m = strlen(t);
int j = -1, i = 0;
next[0] = -1;//由于下标从0开始,那么next[0]=-1
while (i < m - 1)
{
while (j > -1 && t[i] != t[j])j = next[j]