字符串查找之KMP算法

KMP的历史自行找度娘

关于原理可以看下面的链接

字符串匹配的KMP算法
求解next数组

在此,列出我自己对KMP的理解
非-1版本

传统的字符串匹配方式为一个字符一个字符匹配,这样做效率很低。
KMP算法的核心是i相对于父串只增不减,即不会回退。所以不会做重复的事
KMP算法的难度在于求解偏移量,而偏移量和要查找的子串及当前匹配的长度息息相关。
题:子串key = "abaaaba",求解next数组
next数组的index表示什么?表示的是当前子串和父串已经匹配的字符个数,
比如: aba...abacd...,此时最大匹配长度为3,故此时偏移量为1.
因为aba前缀为【a, ab】后缀【ba, a】,前缀和后缀相同的最大长度为1,所以next数组3的位置的值为1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值