串匹配算法(二)——手把手教你KMP算法(1)

KMP算法是一种比较高效的串匹配算法,高效体现在:源串下标不回溯,子串合理的移动。
KMP算法属于思路比较复杂的算法,我自己学习这个算法可以说是第三次了,前两次是似懂非懂的,但是最近在刷牛客题的时候,发现这个算法还是挺高效的,按照常规思路我的程序在时间复杂度根本通不过,所以下狠心再次去学习这个算法,终于整理出来了。现在觉得要想学懂这个算法必须要耐下心来一遍遍的变量跟踪。
本文主要整理出我自己学习KMP算法的手工过程,只要认真跟着我的思路去走,多次变量跟踪,理解这个算法没有问题。

例子一:
这里写图片描述
从例子一看出源字符串每次从失配点与子字符串下表为0的地方开始比较,没有问题,因为子字符串前面的字符都不一样(很抽象)。请看例子二。

例子二:
这里写图片描述

例子三:
这里写图片描述

完整例子4:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值