KMP
最长公共前后缀
在开始了解KMP之前,我们先掌握这个最长公共前后缀的求解方法。
下面我们先肉眼看一下,最长公共前后缀:
例如,对于字符串 abccab
:
- 前缀字符串为:
a
,ab
,abc
,abcc
,abcca
- 后缀字符串为:
b
,ab
,cab
,ccab
, bccab
其中,最长公共前后缀为ab
。
另外,我们拆解这个字符串,看看对于它的各个位置上,如果0开始截取到index位,最长公共前后缀长度表:
a(index=0) |
b(index=1) |
c(index=2) |
c(index=3) |
a(index=4) |
b(index=5) |
0 |
0 |
0 |
0 |
1 |
2 |
观察上面表,index 在[0,