算法:字符串匹配算法KMP

    技术2026-08-28  6

    首先介绍关键概念: 这位博主A讲的十分详细且好理解 这位博主B编程实现

    我的小结: 1、KMP:需要首先构造子串一个可以查询的数组,博主A中描述了前缀和后缀最长相同长度的思路,这个数组后面主要是为了在匹配的时候用于子串的后溯(注意边界为起点)。 2、然后就是匹配的算法,通过在母串的范围内进行匹配,若子串在这个范围内全部完成,那匹配完成,反之,未匹配成功。其中数组的用法是针对子串的,所以在编程的时候,需要有独立的模块思想,并且要有指针的思想,例如,将子串和母串看成两个独立的模块,两者的索引看做指向各自的指针(或者迭代器),模块不懂,指针运动,动静分离,那样在编程的时候思路更加清晰。 key:next数组的作用就是看看子串有多少前面的字符串不同再去进行匹配了,而重新确定起点作为指针,去与一直在移动的母串的指针去匹配。

    Processed: 0.009, SQL: 9