中文

覆盖后缀树的线性时间构造及其应用

数据结构与算法 2023-08-09 v1

摘要

字符串TT的覆盖后缀树(CST)是TT的后缀树,带有对应于TT的平方子串之半的额外显式节点。在CST中,对应于TT的子串CC的显式节点标注有两个数字:非重叠连续出现CC的次数,以及TT中被CCTT中的出现所覆盖的位置总数。Kociumaka等人(Algorithmica, 2015)展示了如何在O(nlogn)O(n \log n)时间内计算长度为nn的字符串的CST。我们展示了在TT为整数字母表的前提下如何在O(n)O(n)时间内计算CST。Kociumaka等人(Algorithmica, 2015; Theor. Comput. Sci., 2018)已表明,已知长度为nn的字符串TT的CST,就能在O(n)O(n)时间内计算TT的所有种子的线性大小表示,以及对于给定的α\alpha计算TT中所有最短α\alpha-部分覆盖和种子。因此我们的结果意味着计算这些拟周期概念的线性时间算法。所得的计算种子的算法与此前的算法(Kociumaka等人,SODA 2012, ACM Trans. Algorithms, 2020)有实质性不同。Kociumaka等人(Algorithmica, 2015)提出了一种O(nlogn)O(n \log n)时间算法,用于对每一个α=1,,n\alpha=1,\ldots,n计算最短α\alpha-部分覆盖;我们将此复杂度改进为O(n)O(n)。我们的结果基于用TT中的游程集合(见Kolpakov和Kucherov, FOCS 1999)对TT的子串SS的连续重叠出现的新刻画。这一新见解还导出了一个大小为O(n)O(n)的索引,用于在O(m+output)O(m+output)时间内报告给定长度为mm的模式PP的重叠连续出现,其中outputoutput为报告的出现次数。相比之下,Navarro和Thankachan(Theor. Comput. Sci., 2016)用于报告有界间隔连续出现的通用索引使用O(nlogn)O(n \log n)空间。

关键词

引用

@article{arxiv.2308.04289,
  title  = {Linear Time Construction of Cover Suffix Tree and Applications},
  author = {Jakub Radoszewski},
  journal= {arXiv preprint arXiv:2308.04289},
  year   = {2023}
}

备注

Accepted to ESA 2023. Abstract abridged to satisfy arxiv requirements