KMP算法理论

KMP算法理论

image-20231113142956541

image-20231113143007837

前缀:包含首字母不包含尾字母的都称为前缀

例如

image-20231113141953526

前缀

image-20231113142039137

后缀:只包含尾字母不包含首字母的的称为后缀

后缀

image-20231113142150293

寻找最长相等的前缀和后缀

image-20231113142444362

前缀表

image-20231113142528718

image-20231113143526933

所谓next数组就是前缀表,在遇到冲突时next数组会告诉我们要回退到哪里

next数组的不同实现

51a279d32f6b7dffa2d8dcab4fed55a
如果是原始next数组,在f处发生冲突,看它的前一位的前缀表所对应的值
如果是右移的next数组,在f处发生冲突,那就看冲突的位置的前缀表对应的值
如果是整体-1的next数组,在f处发生冲突,看它的前一位的前缀表所对应的值,但是最后会把1再加回来

猜你喜欢

转载自blog.csdn.net/Johnor/article/details/134378493