前言:前段时间在网上看了一篇文章,表情包的形式讲解KMP算法,超幽默有爱而且通俗易懂,自己看完搞懂之后整理了一下,以下就给CSDN的博友们分享一下啦~
走起~
因此我们总结一下模式字符串具有公共前后缀的条件:
(1)最长的公共前后缀
(2)长度必须小于指针前所有字符长度
前后图片的变化就是我们将模式串进行移动,使得公共前缀移动到后缀的位置
接下来继续比较!
可以发现这个数组是从0开始的,但是其实无论从0开始还是从1开始都是可以的。
老板我要抢答,第四位的结果如下:
老板我要抢答。第五位的结果如下:
老板,我要再接着抢答~下面详细说一下吧,包括第六位的详细分析过程:
先找到公共的前后缀:
也就是模式串串的第四位与主串串的当前位置作比较
转换的结果图如下
嗯!!!我终于明白了!比如模式串串1位置上发生了不匹配,则按照我们刚才定义的规则进行执行“1号位与主串串的下一位进行比较”
瞬间把刚才分析的图拿出来!
👇看毛片神图
结尾:好啦,完结了。相信你已经看完啦,也彻底明白了什么叫KMP算法啦~
本文发布于:2024-02-01 05:25:42,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170673634434205.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |