KMP算法 KMP算法主要包括两个过程,一个是针对子串生成相应的“索引表”,用来保存部分匹配值,第二个步骤是子串匹配. 部分匹配值是指字符串的“前缀”和“后缀”的最长的共有元素的长度.以“ABCDABD”为例: “A”的前缀和后缀都是空,共有元素长度为0: “AB”的前缀为{A},后缀为{B},共有元素长度为0: “ABC”的前缀为{A, AB},后缀为{BC, C},共有元素长度为0: “ABCD”的前缀为{A, AB, ABC},后缀为{BCD, CD, D},共有元素长度为0: “ABCD