kmp算法模板

即寻找一个母字符串中是否有子字符串

首先可以用朴素算法,即通过两层循环进行查找,时间复杂度会到达O(n*m)。

随后学习到了kmp算法,做到了一个循环便查找成功即时间复杂度到了O([n,2n]+[m,2m])=O(n+m)。([n,2n]是区间)

具体思路是:找到子字符串内部的规律,即找到其内部的前缀和后缀相等的最大个数,并记录每一个下标下的next值,即每一个下标下对应的前面前缀和后缀相等的最大个数的下一个坐标,即next值。通过next数组存储每一个下标下的next值,就可以经过一次循环来判断母字符串是否含有子字符串了。

代码以及注释如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值