目录 一.前言 二.思路 三.代码 一.前言 kmp算法是用于从文本串text的字串中,寻找含有的模板串pattern的数量/位置的算法. 例如,在文本串abcabcccabc中,模板串abc的数量有3个,其起始位置是0,3,8. 二.思路 暴力是两个for循环O(n*m)搞定,显然不够优雅,而kmp则是O(n+m). kmp说实话,有点绕,很多人不知道next数组的意义,但其实可以这样理解: 寻找模板串中最长的相同后缀与前缀,并通过next数组存储. 如何理解?举个栗子 对于模板串abcab而…