本文主要是介绍漫画讲解KMP,超有爱幽默~,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言:前段时间在网上看了一篇文章,表情包的形式讲解KMP算法,超幽默有爱而且通俗易懂,自己看完搞懂之后整理了一下,以下就给CSDN的博友们分享一下啦~
走起~
因此我们总结一下模式字符串具有公共前后缀的条件:
(1)最长的公共前后缀
(2)长度必须小于指针前所有字符长度
前后图片的变化就是我们将模式串进行移动,使得公共前缀移动到后缀的位置
接下来继续比较!
可以发现这个数组是从0开始的,但是其实无论从0开始还是从1开始都是可以的。
老板我要抢答,第四位的结果如下:
老板我要抢答。第五位的结果如下:
老板,我要再接着抢答~下面详细说一下吧,包括第六位的详细分析过程:
先找到公共的前后缀:
也就是模式串串的第四位与主串串的当前位置作比较
转换的结果图如下
嗯!!!我终于明白了!比如模式串串1位置上发生了不匹配,则按照我们刚才定义的规则进行执行“1号位与主串串的下一位进行比较”
瞬间把刚才分析的图拿出来!
👇看毛片神图
结尾:好啦,完结了。相信你已经看完啦,也彻底明白了什么叫KMP算法啦~
这篇关于漫画讲解KMP,超有爱幽默~的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!