KMP算法的C++实现,解决下标0和总是输出负数(需要完整代码可在评论区评论,会及时回复)
个人第一次学习数据结构,请各路大神键下留情,另外由于等级不够,无法上传代码,需要完整代码,可在评论区评论,会及时回复。
《大话数据结构》中KMP模式匹配算法,下标从1开始,个人三天前才开始学习数据结构,看到此章节,停留了两天,对自身遇到的问题进行错题记录。
解决下标0的问题
大话数据结构中,求取模式串next数组的源码如下
可以明显得知,该方法是以下标“1”为起始,如果在C++中,直接复制此段代码,会出现如下情况:
总结问题即为:无法识别模式串的下标0是否与主串匹配,单纯通过判断下标1之后的模式串来进行匹配,显而易见时错误的。
next数组的解决办法
由于if条件中&#