KMP是上学期学数据结构时候学的,当时就没学太明白,后来又自己琢磨了几次,但始终是一知半解.今天起床了又想起来KMP,以下是思考得到的一点东西. 首先学过kmp的都知道要写两个函数,一个计算next数组,一个kmp主体函数,那么next数组里存的到底是啥呢.首先答案是:next[i]存的是字符串[0,i]的前后缀最长公共长度减1的值.下面先解释下前后缀. 引用张别人的图: 也就是说只有一个元素时候前后缀都为空,即不能拿整个字符串作为前缀or后缀,注意这点即可. 我们把第i位对应的最大公共前后缀长…