关于一类字符串算法 - 马拉车 Z函数 的一点想法
感觉马拉车和 Z 函数才是最像的。
都是相当于把每个拓展出来的字符的时间复杂度都均摊到最左边的匹配到它的。
即,相当于考虑当前已知的字符串(全部已经用于拓展过了),然后对于一个新的 \(i\),通过之前的先快速求出 \(r_i\) 的下界,若在边界上则拓展可均摊,否则已经确定。
那么需要的是不在边界上就不能拓展和可以快速求出以边界为限的右端点。
感觉马拉车和 Z 函数才是最像的。
都是相当于把每个拓展出来的字符的时间复杂度都均摊到最左边的匹配到它的。
即,相当于考虑当前已知的字符串(全部已经用于拓展过了),然后对于一个新的 \(i\),通过之前的先快速求出 \(r_i\) 的下界,若在边界上则拓展可均摊,否则已经确定。
那么需要的是不在边界上就不能拓展和可以快速求出以边界为限的右端点。
