KMP算法(图中串在存储时都没有使用数组的第一个位置)

7a70afd11f7b49e7a519831726efb3da.jpg

 如图,KMP算法就是通过匹配失败之前已经匹配成功的字符得到主串的字符是什么,即通过匹配成功的模式串中的字符可以得到主串中相应位置的字符,由图可知,主串中匹配失败前的字符是和模式串中相应位置的字符一样的,以图中模式串为例,要知道,在模式串的任意一个字符处都可能发生匹配失败,总共有六种匹配失败的情况,如下图:

ac7eea6424474b10a8b9069fe68b1333.jpg

 这六种情况可用数组来存放,即next数组,如下图:

04996684dfd4432abab6fd0999afbbb1.jpg

 因此KMP算法是通过事先得到next数组,再通过next数组进行模式匹配!(具体代码实现还没弄,只是浅浅的说一下自己的理解)(如有不对,欢迎大神指正)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

<风雨踏梦来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值