KMP算法
求得模式串中相等的前缀和后缀的最大长度,前缀是除了最后一个字符外的全部头部组合,后缀是除了第一个字符外的全部尾部组合
根据最大长度去求 next 数组,next数组相当于最大长度值整体向右移动一位,然后初始值赋为 -1。
开始将模式串P和文本串的字母一个个进行匹配,第 1 个匹配成功,第二个没有匹配成功,将模式串索引值为当前 next 数组值的元素移动到失配位置。
移动以后该位置仍然不匹配
再将模式串索引值为当前 next 数组值的元素移动到失配位置。这里next值为 -1。移动以后发现匹配。
再将模式串索引值为当前 next 数组值的元素移动到失配位置。这里next值为 2。移动以后发现匹配。
一直到最后匹配成功。
注:next[j] 的含义是:在子串的第 j 个字符与主串发生失配时,则跳到主串的 next[j] 位置重新与主串当前失配位置进行比较。
KMP算法
# 推荐文章
1.absolute和relative定位
2.display:table-cell在布局上的应用
3.两列布局css
4.解决GitHub访问不了问题
5.Collection集合和Map集合
6.JDK,JRE和JVM
1.absolute和relative定位
2.display:table-cell在布局上的应用
3.两列布局css
4.解决GitHub访问不了问题
5.Collection集合和Map集合
6.JDK,JRE和JVM