两个字符串:
模式串:ababcaba
文本串:ababcabcbababcabacaba
KMP算法作用:快速在文本串中匹配到模式串
如果是穷举法的方式:
大家有发现,这样比效率很低的。
所以就需要使用一种高效率模式的算法:KMP算法。
大家有看到上面的穷举法,是一位一位的挪。那可以一次挪多位不就行了。像下面:
那么为什么可以这样挪呢? 模式串向右移动的距离 = 已匹配字符数 - 失配字符的上一位字符所对应的最大长度值
那么我们要怎么找出每位上的最大长度值呢呢? 我们来找一下。
所以,使用KMP算法进行挪位: