说完了KMP算法的一些基本的操作,我们再来说一下KMP算法的代码实现:
写代码的时候和上面我们所说的操作都是一样的:
首先我们需要完成的就是prefix-table的构建,为了大家能更好的理解,我们使用一串新的字符串作为例子进行讲解:
我们写出它所有的前缀和最长公共前后缀的长度为:
我们从中可以发现一个规律:
例如:我们拿字符串:“A B A B C A”和字符串:“A B A B C A B”举例
第一段字符串的公共前后缀的长度为1 ,也就是说第一个和最后一个肯定是相等的,那么如果我们要使得其公共前后缀长度增加的话,我们要在最后一位添加一个和第二个字母相等的字母,也就是说我们的字符串“A B A B C A”,如果想让它的最长公共前后缀的长度变为2,就需要在A的后面加上一个B。