kmp算法next计算方法讲解
时间: 2023-11-19 22:54:10 浏览: 265
KMP算法讲解.pptx
KMP算法的next数组计算方法是关键的一步,它用于在模式串和主串不匹配时,快速地跳过一些已经匹配的字符,从而提高匹配效率。下面是next数组的计算方法:
1. 首先,next[0]赋值为-1,next赋值为0。
2. 然后,从i=2开始,依次计算next[i]的值。
3. 对于next[i]的计算,需要用到前面已经计算出来的next、next、...、next[i-1]的值。
4. 假设已经计算出了next、next、...、next[i-1]的值,现在要计算next[i]的值。
5. 首先,将next[i]赋值为0。
6. 然后,从next[i-1]开始,依次向前查找前缀和后缀是否相等。
7. 如果相等,则将next[i]的值赋为相等的长度。
8. 如果不相等,则继续向前查找,直到找到next[j]=-1或者前缀和后缀相等为止。
9. 如果找到了前缀和后缀相等的位置,将next[i]的值赋为相等的长度。
10. 如果一直查找到next[j]=-1都没有找到前缀和后缀相等的位置,将next[i]的值赋为0。
11. 最后,返回计算出来的next数组。
阅读全文