KMP算法(next代码的理解)的理解
假设有模式串 b c b c b e a
相对应有
next[0] = -1
next[1] = -1
next[2] = 0
next[3] = 1
next[4] = 2
next[5] = -1
模式串下标标号从0开始
当在下标i时发生不匹配,模式串下标回溯为next[i-1] + 1;
被匹配串下标不发生变化
需要注意的是,当寻找最长公共子串的下标范围为[0,i]时, 最长公共子串的前一串必须从0开始,后一串必须从i开始
代码如下,理解和解释附在注释里
next[0] = -1;//第一个字符不匹配
原创
2021-03-19 20:12:25 ·
181 阅读 ·
0 评论