给定一个模式abababc
,前缀表是[0,0,1,2,3,4,0]
。但是, at ababab
、abab
和ab
都是前缀。为什么我们只将abab
其视为有效前缀?
+---+----------+-------+--------+
| i | P[i] | [i] | Prefix |
+---+----------+-------+--------+
| 0 | a | 0 | |
| 1 | ab | 0 | |
| 2 | aba | 1 | a |
| 3 | abab | 2 | ab |
| 4 | ababa | 3 | aba |
| 5 | ababab | 4 | abab | (notice here ab can also be a prefix)
| 6 | abababc | 0 | |
+---+----------+-------+--------+
我想不出一个较长的前缀会失败但较短的前缀会起作用的例子。有没有证据表明应该只考虑最长的前缀?谢谢!