QUICK REVIEW
[论文解读] Computing All Distinct Squares in Linear Time for Integer Alphabets
Hideo Bannai, Shunsuke Inenaga|arXiv (Cornell University)|Oct 11, 2016
Algorithms and Data Compression参考文献 21被引用 3
一句话总结
本文提出了一种线性时间算法,用于在整数字母表上的字符串中计算所有不同的平方子串,利用后缀树和一种半动态最低标记祖先数据结构。关键贡献在于以 O(n) 时间构建最小增强后缀树(MAST)的拓扑结构,从而实现高效的非重叠子串出现查询。
ABSTRACT
Given a string on an integer alphabet, we present an algorithm that computes the set of all distinct squares belonging to this string in time linear to the string length. As an application, we show how to compute the tree topology of the minimal augmented suffix tree in linear time. Asides from that, we elaborate an algorithm computing the longest previous table in a succinct representation using compressed working space.
研究动机与目标
- 在整数字母表上以线性时间计算字符串中的所有不同平方子串。
- 以线性时间实现最小增强后缀树(MAST)拓扑结构的高效构建。
- 提供最长先前因子(LPF)表的紧凑压缩表示。
- 通过实用的数据结构设计,支持不同平方子串的在线计算。
提出的方法
- 使用后缀数组和 LCP 数组,通过范围最小值查询(RMQ)高效定位平方子串。
- 采用半动态最低标记祖先(LMA)数据结构,跟踪后缀树中已处理的区域。
- 使用整数排序按长度对平方根进行排序,以便按递增顺序处理。
- 通过后缀树的自顶向下遍历,在正确位置插入新节点以表示平方根。
- 以 2n + o(n) 位表示 LPF 表,并使用压缩工作空间进行计算。
- 利用 LCP 数组上的 RMQ,以常数时间回答 LCE 查询。
实验结果
研究问题
- RQ1是否可以在整数字母表上以线性时间计算字符串中所有不同的平方子串?
- RQ2是否可能在 O(n) 时间内构建最小增强后缀树(MAST)的树拓扑结构?
- RQ3最长先前因子(LPF)表能否使用压缩空间进行存储和计算?
- RQ4该算法能否适应不同平方子串的在线处理?
主要发现
- 该算法在整数字母表大小为 n^O(1) 的情况下,以 O(n) 时间计算所有不同的平方子串。
- 最小增强后缀树(MAST)的拓扑结构可在 O(n) 时间内构建,优于先前的 O(n log n) 时间复杂度。
- LPF 表以 2n + o(n) 位存储,并使用压缩工作空间进行计算。
- 该方法使用半动态最低标记祖先结构,高效定位后缀树中的插入点。
- 通过在对应于平方根深度的正确位置插入节点,实现了 MAST 的线性时间构建。
- 该算法支持在线处理不同平方子串,如附录所示。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。