Algorithms for Galois Words: Detection, Factorization, and Rotation
本文证实了关于Galois字的猜想,提出了在O(n)时间和常数额外空间内检测Galois字、计算其旋转及在线分解的线性算法,解决了相关开放问题。
2024-04-23 cs.DS
Left Lyndon tree construction
我们扩展了左到右的林登因式分解的一个词的左林登树结构的林登字。它产生了一个算法,根据Dolce et al.(2019)定义的无限顺序对Lyndon单词的前缀进行排序。一个简单的变体计算一个词的左林登森林。所有的算法都在线性时间内运行在一个通用的字母表上,也就是说,在字母比较模型中。
2020-11-25 cs.DS cs.FL
Inducing the Lyndon Array
在本文中,我们提出了Nong(TOIS,2013)的诱导后缀排序算法的变体,该算法使用工作空间的$σ+ O(1)$字在$O(n)$时间内同时计算文本的Lyndon数组和后缀数组,其中$n$是文本的长度,$σ$是字母表大小。我们的结果改善了以前的最佳空间要求的线性时间计算的林登阵列。事实上,所有已知的用于Lyndon阵列计算的线性算法使用后缀排序作为预处理步骤,并且除了Lyndon阵列和后缀阵列之外还使用工作空间的$O(n)$字。在真实数据集和人工数据集上的实验结果表明,该算法不仅具有空间效率,而且在实际应用中具有快速性。
2019-07-26 cs.DS
The Inverse Lyndon Array: Definition, Properties, and Linear-Time Construction
University of Salerno(萨莱诺大学)
本文研究逆Lyndon数组,定义其为逆Lyndon词的结构,通过next greater suffix数组和border修正项进行刻画,并提出线性时间构造算法,适用于一般有序字母表。
2026-03-18 cs.DS cs.FL
Computing Longest (Common) Lyndon Subsequences
给定一个长度为$n$的字符串$T$,其字符来自大小为$σ$的有序字母表,它的最长林登子序列是$T$的最长子序列,该子序列是林登字。我们提出的算法,找到这样一个子序列在$O(n^3)$时间与$O(n)$空间,或在线$O(n^3 σ)$空间和时间。我们的第一个结果可以扩展到使用$O(n^3)$空间在$O(n^4 σ)$时间内找到两个长度为$n$的字符串的最长公共林登子序列。
2022-01-18 cs.DS
Cartesian trees and Lyndon trees
本文描述了笛卡尔树和林登树在结构和算法上的关系。这导致了对应于数字序列的下一个最近较小表的单词的林登表的统一表示。它展示了如何有效地计算游程,即在一个单词中出现的最大周期。
2017-12-23 cs.CC cs.DS
Lyndon Words and Short Superstrings
在最短超字符串问题中,我们给定一组字符串S,并希望找到一个包含S中所有字符串作为子字符串且具有最小长度的字符串。这是一个经典的近似问题,最著名的近似因子是2 1/2,由Sweedyk在1999年给出。从那时起没有改进,然而Kaplan等人和最近Paluch等人提出了另外两种产生2 1/2-近似算法的方法,这两个减少最大不对称TSP路径(最大ATSP路径)和结构的结果Breslauer等人的基础上。在本文中,我们给出了一个算法,实现了近似比2 11/23,突破了长期的约束2 1/2。我们使用最短超串到最大ATSP路径的标准约简。新的,有点令人惊讶的,算法思想是采取更好的两个解决方案,通过使用:(a)目前最好的2/3-近似算法的最大ATSP路径和(b)一个天真的循环覆盖的1/2-近似算法。为了证明,这确实会导致改进,我们进一步开发了一个理论的字符串重叠,扩展的结果Breslauer等人。这一理论是基于新的使用林登的话,作为替代通用无边界旋转和临界因子分解,所使用的Breslauer等人。
2012-05-30 cs.DS
Necklaces and Lyndon words in colexicographic order
University of Guelph(圭尔夫大学)
提出常数摊还时间算法,通过引入准项链生成k字母表上长度为n的项链与林登单词,推导准项链数量公式,应用结果生成德布鲁因序列及带权重约束的项链与林登单词。
2026-07-07 cs.DS math.CO
Alternative Algorithms for Lyndon Factorization
我们提出了两种变化的杜瓦尔算法计算林登分解的一个字。第一种算法是针对小字母表的情况设计的,并且对于包含字母表中最小字符的串,能够跳过字符串的显著部分。实验结果表明,该算法比Duval的原算法速度快十倍以上,在长DNA串的情况下也有明显的提高。第二个算法,给定一个长度为$ρ$的游程编码字符串$R$,计算$R$在$O(ρ)$时间和恒定空间中的林登因子分解。
2014-07-11 cs.DS
Space Efficient Construction of Lyndon Arrays in Linear Time
我们提出了第一个线性时间算法来构造的$2n$位版本的林登阵列的长度$n$的字符串只使用$o(n)$位的工作空间。该算法的一个更简单的变体仅使用额外工作空间的$\mathcal{O}(1)$字来计算Lyndon阵列的普通($n\lg n$ -位)版本。所有以前的算法要么不是线性的,要么使用至少$n\lg n$位的附加工作空间。同样在实践中,我们的新算法在时间和空间方面都比以前的最佳算法好一个数量级。
2019-12-10 cs.DS
Lyndon Array Construction during Burrows-Wheeler Inversion
在本文中,我们提出了一个算法来计算的林登阵列的字符串$T$的长度$n$作为一个副产品的反演的$T$的Burrows-Wheeler变换。除了用于Burrows-Wheeler反演的数据结构之外,我们的算法仅使用堆栈在线性时间内运行。我们比较我们的算法与其他两个线性时间算法的林登阵列建设和计算的Burrows-Wheeler变换,然后构建林登阵列是有竞争力的,与已知的方法相比。我们还提出了一个新的平衡括号表示的林登阵列,使用$2n+o(n)$位的空间,并支持恒定的时间访问。该表示可以使用$O(n)$空间字在线性时间内构建,或者使用与$T$渐近相同的空间在$O(n\log n/\log\log n)$时间内构建。
2017-10-27 cs.DS
Fast and memory-efficient BWT construction of repetitive texts using Lyndon grammars
本文提出基于Lyndon直线程序从压缩表示计算BWT和eBWT的算法,在大规模重复性数据集上实现了比现有方法更快且更省内存的构建过程。
2025-09-23 cs.DS
Nyldon Factorization of Thue-Morse Words and Fibonacci Words
本文研究了Thue-Morse词和Fibonacci词的Nyldon分解,完整刻画了有限情形,并证明了无限Thue-Morse词存在非递减的Nyldon词乘积分解。
2025-09-11 cs.DM cs.DS
String Rearrangement Inequalities and a Total Order Between Primitive Words
我们研究以下重排问题:给定$n$单词,重排并连接它们,使获得的字符串是字典最小的(或最大的,分别)。我们表明,这个问题减少到排序给定的单词,使其重复字符串是非递减(或非递增,分别),其中重复字符串的一个字$A$是指无限字符串$AAA\ldots$。此外,对于固定长度的字母表$Σ$,我们设计了一个$O(L)$时间排序算法的单词(在上述顺序),其中$L$表示输入单词的总长度。因此,我们得到一个$O(L)$时间算法的重排问题。最后,我们指出,通过比较原始字的重复字符串比较原始字导致一个全序,它可以进一步扩展到有限字(或所有字)的全序。
2022-04-24 cs.DS
Near-Optimal Quantum Algorithms for String Problems
我们研究了几个基本弦问题的量子算法,包括最长公共子串,字典序最小弦旋转和最长平方子串。这些问题自1970年代以来在弦学文献中得到了广泛的研究,并且被认为是可以用近似线性时间经典算法解决的。在这项工作中,我们给出了解决这些问题的量子算法,具有接近最优的查询复杂度和时间复杂度。具体而言,我们表明:最长公共子串可以通过量子算法在$\tilde O(n^{2/3})$时间内求解,改进了Le Gall和Seddighin(2020)最近的$\tilde O(n^{5/6})$时间算法。我们的算法使用了MNRS量子行走框架,以及字符串同步集(Kempa和Kociumaka,2019)和广义差覆盖的精心组合。- 字典序最小字符串旋转可以通过$n^{1/2 + o(1)}$时间的量子算法来解决,改进了Wang和Ying(2020)最近的$\tilde O(n^{3/4})$时间算法。我们设计了我们的算法,首先给出了一个新的经典分治算法在近线性时间的基础上排除规则,然后加快它的二次使用嵌套Grover搜索和量子最小发现。- 最长平方子串可以通过量子算法在$\tilde O(\sqrt{n})$时间内求解。我们的算法是Le Gall和Seddighin(2020)针对最长回文子串问题的算法的改编,但使用了额外的技术来克服二进制搜索不再适用的困难。我们的技术自然地扩展到其他相关的字符串问题,如最长重复子…
2021-10-20 cs.DS quant-ph
Counting Distinct Square Substrings in Sublinear Time
本文首次在打包字符串模型下提出次线性时间算法,通过长周期run的隐式表示、layer run的金字塔形组合性质以及稀疏Lyndon根技术,在$O(n/\log_σn)$时间内统计长度为$n$的字符串中不同平方子串的数量。
2025-09-02 cs.DS
Absent Subsequences in Words
Institute for Computer Science, Georg-August University Göttingen(哥廷根大学计算机科学研究所)
研究词中缺失子序列的性质与算法,包括最短和最小缺失子序列的识别与计算。
2023-10-11 cs.DS cs.FL
The "Runs" Theorem
我们给出了一个新的特征的最大重复(或运行)的字符串的基础上林登字。这个特征导致了所谓的“游程”猜想(Kolpakov \& Kucherov(FOCS '99))的证明,该猜想指出长度为$n$的字符串中游程$ρ(n)$的最大数量小于$n$。考虑到过去15年来为解决这个问题所做的大量努力,证明非常简单,并且大大提高了我们对串如何发生的理解。此外,我们还得到了长度为$n$的字符串中游程的最大指数和$σ(n)$的$3n$的上界,改进了Crochemore等人(JDA 2012)的$4.1n$的最佳已知界,以及相关问题的其他改进界。的特征也产生了一个新的,概念上简单的线性时间算法计算所有的运行在一个字符串。我们的算法的一个显着特点是,不同于所有现有的线性时间算法,它不利用字符串的Lempel-Ziv分解。我们还建立了林登树的运行和节点之间的关系,这为Kociumaka等人最近解决的2周期查询问题提供了一个简单的最优解决方案。
2015-06-03 cs.DM cs.DS
Sparse Suffix Tree Construction in Optimal Time and Space
后缀树(以及与之密切相关的后缀数组)是一种基本的结构,它通过按字典顺序存储所有后缀来捕获给定文本的所有子串。在某些应用中,我们使用$b$感兴趣的后缀的子集,这些后缀存储在所谓的稀疏后缀树中。由于该结构的大小为$Θ(b)$,因此自然会寻求一种仅使用空间的$O(b)$字的构造算法,假设对文本的只读随机访问。我们为这个问题设计了一个线性时间蒙特卡罗算法,从而解决了Bille等人明确提出的一个悬而未决的问题。[TALG 2016]。I等人[STACS 2014]之前已知的最佳算法在$O(n\log b)$时间内工作。我们的解决方案在$n/b$轮中进行;在第$r$轮中,我们考虑从$r$模$n/b$全等位置开始的所有后缀。通过保持滚动哈希,我们按字典顺序排序所有感兴趣的后缀,然后将它们与已经考虑过的后缀合并。为了有效地合并,我们还需要在小空间中回答LCE查询。通过插入Bille等人[CPM 2015]的结构,我们获得了$O(n+b\log b)$时间复杂度。我们改进了这种结构,这意味着一个线性时间稀疏后缀树的构造算法。我们补充我们的Monte Carlo算法与确定性验证程序。验证需要$O(n\sqrt{\log b})$时间,这改善了I等人[STACS 2014]获得的$O(n\log b)$的范围。这是通过首先观察到在先前的解决方案中完成的修剪使用具有小乘法拉伸的图空间的概念具有相当清晰的描…
2016-08-02 cs.DS