//计算next数组就是模板串自己与自己进行匹配操作得出来的
t[0]为字符串的长度 while(l <= t[0]){ if(k == 0 && t[l] == t[k]){ l++; k++; ne[l] = k; } }
解读代码
其实就是先判断 l 位置和 k 位置的是否相等如果相等那么后一个位置的next的值自然 + 1,当回溯到不能在回溯的时候也就是k = 0的时候此时next[i + 1] = 1;
为什么回溯的值是最大相等的前后缀数目
//计算next数组就是模板串自己与自己进行匹配操作得出来的
t[0]为字符串的长度 while(l <= t[0]){ if(k == 0 && t[l] == t[k]){ l++; k++; ne[l] = k; } }
解读代码
其实就是先判断 l 位置和 k 位置的是否相等如果相等那么后一个位置的next的值自然 + 1,当回溯到不能在回溯的时候也就是k = 0的时候此时next[i + 1] = 1;
为什么回溯的值是最大相等的前后缀数目