假设求串′ababaaababaa′的next数组 模式串 a b a b a a a b a b a a 下标 1 2 3 4 5 6 7 8 9 10 11 12 1.前两位:next数组前两位一定是0,1 即前两位ab对应的next数组为01,则: 模式串 a b a b a a a b a b a a 下标 1 2 3 4 5 6 7 8 9 10 11 12 next数组 0 1 2.接下来看第三位,按照next数组求解方法.第三位a的前一位为第…
之前在学KMP算法时一直理解不了获取next数组的函数是如何实现的,现在大概知道怎么一回事了,记录一下我对获取next数组的理解. KMP算法实现的原理就不再赘述了,先上KMP代码: 1 void getNext(char *pat, int *next) { 2 next[0] = -1; 3 int m = strlen(pat); 4 for (int i = 1; i < m; i++) { 5 int j = next[i - 1]; 6 while (j != -1 &&…