前言
KMP算法是用来求一个较长字符串是否包含另一个较短字符串的算法。具体算法下一篇写吧,这篇主要解释next数组的求解。
代码
代码应该都看过了,先贴在这里,其中最难理解的地方就是求next数组,以及k往前回溯,这也是写本文的目的。
int *next = new int[length];
//这里的str是被包含的较短字符串,length是这个字符串的长度。
void next(char *str, int *next, int length)
{
next[0] = -1;
int k = -1;