BF算法的核心
回溯:什么时候要进行回溯操作❓在主串中的元素和子串中的元素发生不匹配的情况时要进行回溯操作,回溯操作是针对于主串来说的, 我们还以上图来进行解释,此时我们的主串中的的a与子串中的c发生了不匹配的操作...>
//str代表主串
//sub代表子串
//返回值:返回子串在主串中的下标。...next数组中存储子串要移动位置的下标
next数组的引入
首先举例,为什么主串位置i不回退❓我们需要一个特定的例子来说明这个问题:
另一个问题:子串j该如何回退?...练习 2: 再对”abcabcabcabcdabcde”,求其的 next 数组?
到这里大家对如何求next数组应该问题不大了....next 数组的优化,即如何得到 nextval 数组:有如下串: aaaaaaaab,他的 next 数组是-1,0,1,2,3,4,5,6,7.而修正后的数组 nextval 是:
-1, -1