我正在阅读关于 KMP 算法的 topcoder 教程,但我无法理解文本的以下部分:
给定一个字符串(一个很长的字符串),找到它的所有正确的后缀,这些后缀也是它的前缀。我们所要做的只是计算给定字符串的“失败函数”,并使用其中存储的信息来打印答案。
我知道如何计算故障函数,对于字符串abacababa
,我得到以下数组[0, 0, 1, 0, 1, 2, 3, 2, 3]
。问题是我无法弄清楚它如何帮助我找到
它的所有正确的后缀也是它的前缀
根据我的理解假设是a
and aba
。