2.next数组求法
操作见课件,这里不赘述
1. s[i]≠s[j]s[i] \neq s[j]s[i]=s[j]

则s[i]s[i]s[i] 和 s[j]s[j]s[j] 无法匹配,所以我们一定无法选择 s[j]s[j]s[j] 且 next[i]=1next[i] = 1next[i]=1, 所以最长公共前后缀长度为:一段包含s[i]s[i]s[i]的区间和一段不包含s[j]s[j]s[j]的区间,且两区间相同,next[j]next[j]next[j]表示先将不包含s[i]s[i]s[i]的区间匹配,在去暴力的判断能不能再加上一个字符s[i]s[i]s[i]
2.s[i]==s[j]s[i] == s[j]s[i]==s[j]
则最长公共前后缀可以向后延展一位,所以直接 iii++; jjj++;

被折叠的 条评论
为什么被折叠?



