(一)如何优化暴力算法 Waiting... (二)KMP模板 KMP 算法的精髓在于 \(next\) 数组,\(next[i]=j\) 代表 \(p[1,j]=p[i-j+1,i]\),\(next[i]\) 数值意义代表 \(p[1,i]\) 所有前缀与后缀的最长公共部分,我们约定本文提到的前缀与后缀均为不包含原字符串 \(p\) 本身. 这个过程动手计算并不困难,但想理解代码为何如此实现倒并不简单.个人建议,自行动手画图计算 \(next\) 数组,以此体会这个过程,否则永远不可能理解哪…