kmp算法next数组的求法
时间: 2023-11-06 09:02:53 浏览: 138
KMP算法中next数组的计算方法研究
KMP算法的next数组的求法如下:
1. 首先,next数组的长度等于模式串的长度。将next数组初始化为-1。
2. 然后,从模式串的第二个字符开始,依次计算每个位置的next值。
3. 对于位置i,先找到从位置i往前的字符串的最长相同真前缀和真后缀的长度,即找到最长的前缀后缀长度。
4. 如果位置i的前一个字符等于位置i的前缀后缀的下一个字符,那么位置i的next值就等于前一个位置的next值加1;否则,位置i的next值为0。
5. 重复步骤4,直到计算完所有位置的next值。
根据上述步骤,以模式串"aaad"为例,其next数组为[-1,0,1,2]。
阅读全文