Kmp中next数组含义

凑个字数

这篇分析了Kmp中next数组到底是用来干什么的。文章假定大家已经对字符串匹配算法具有初步了解。但是对kmp中的next不是很懂。如果想要研究更多。可以出门左转https://blog.csdn.net/qq_41105401/article/details/79827356这篇写的很详细。
这里写图片描述

补充个难点

为什么可以不考虑不是后缀的但跟开头能匹配的内容

学过kmp都知道,下面这个串。
目标串S:abdababxqweqwer
模式串T:abdababy
应该移动到如下
abdababxqweqwer
11111abdababy
而不是
abdababxqweqwer
111abdababy
我们发现中间那个小老弟ab虽然跟前后缀一样但是移过去后发现它是个错误的位置。这是因为目标串中间的ab到末尾是abab,但模式串开头是abda,所以移动过去后发现它俩配不上,换言之,如果中间的ab是正确的位置,的充要条件就是中间中间的ab到结尾应该等于模式串的开头。而这句话你在品品,ab到结尾是个啥,可不就是后缀吗。所以说这就证明了,如果奇迹

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值