“前缀函数与Z 函数都编码字符串前缀与其他位置的重合信息,并可在线性时间互相转换; 指的是信息层面的可恢复性,不表示两个数组逐项相等,也不表示两套更新公式可以混用。若预处理对象从单个模式改成固…”
形式陈述 ​
对字符串
直觉
Z 函数
例子与边界
字符串 aabcaabxaaaz 的某些位置会有较大 Z 值;更简单地,aaaaa 的 Z 数组(约定 pattern#text 的 Z 值,凡
推论与应用
词与序列提供对象。Z 函数在给定串上以确定性最坏
在 pattern#text 上运行 Z 算法仍是一次模式—文本扫描。固定文本上反复查询时,FM-index预处理 BWT 与 rank 结构,以压缩空间提供 count,定位还需额外采样;Z 数组既不保存后缀次序,也不能直接替代 backward search。两者都能找精确出现位置,但预处理对象和查询成本完全不同。
参考资料
- OI-Wiki contributors, OI-Wiki (2026), Z-function.
- cp-algorithms contributors, Algorithms for Competitive Programming (2026), Z-function.
- Dan Gusfield, Algorithms on Strings, Trees, and Sequences, Cambridge University Press, 1997, exact string matching.