KMP算法是Knuth-Morris-Pratt 3位老前辈开创的。
模式匹配是数据结构中经典的问题,而KMP算法是无回溯的模式匹配的典型算法。它可以在O(n +m)复杂度内完成模式匹配。它的基本思想是,当主串中的第i字符与模式串中的第j个字符失配时,主串的指针i不回溯,模式串向后滑动一个合适位置,重新进行比较。所以此算法的关键就是当失配时如何找到合适位置重新进行比较。
算法描述:
引用/一位仁兄的代码(Java),有空自己再添加自己的代码:
























































(未完成 to be continue...)