推荐Bilibili讲解视频:BV1jb411V78H
推荐csdn讲解文章:https://www.cnblogs.com/JoBlg/p/4087230.html?tdsourcetag=s_pctim_aiomsg
KMP算法起源于模式串与主串的匹配问题。
例如下面这个例子,要想在主串中寻找到模式串,需要进行如下比较:
我们再观察一下他的比较指针变化可以发现,比较指针再比较时存在回溯行为,我们更希望指针一趟扫描后可以迅速找出匹配串,避免指针回溯。
今天学习的KMP算法,特点就在于:“仅移动模式串,而不移动比较指针”,先依照这个例子我们看看他如何做到。
以上则为KMP算法的操作模式,可以看出,使用KMP算法,不仅减少了比较次数,也满足了不回溯比较指针的效果。
KMP算法:
挨个比较->
发现错误->
<