KMP算法的C++实现,解决下标0和总是输出负数

KMP算法的C++实现,解决下标0和总是输出负数(需要完整代码可在评论区评论,会及时回复)

个人第一次学习数据结构,请各路大神键下留情,另外由于等级不够,无法上传代码,需要完整代码,可在评论区评论,会及时回复。

《大话数据结构》中KMP模式匹配算法,下标从1开始,个人三天前才开始学习数据结构,看到此章节,停留了两天,对自身遇到的问题进行错题记录。

解决下标0的问题

大话数据结构中,求取模式串next数组的源码如下
在这里插入图片描述
可以明显得知,该方法是以下标“1”为起始,如果在C++中,直接复制此段代码,会出现如下情况:
在这里插入图片描述

总结问题即为:无法识别模式串的下标0是否与主串匹配,单纯通过判断下标1之后的模式串来进行匹配,显而易见时错误的。

next数组的解决办法

在这里插入图片描述
由于if条件中,存在t[ i ] == t[ j ]&

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值