A Linear Time Algorithm for Seeds Computation
Tomasz Kociumaka, Marcin Kubica, Jakub Radoszewski, Wojciech Rytter, and Tomasz Walen

TL;DR
This paper introduces a linear-time algorithm to compute a compact, linear-size representation of all seeds in a word, solving an open problem and improving efficiency over previous methods by leveraging combinatorial relations and simplifying the approach.
Contribution
It presents the first linear-time algorithm for seeds computation and a simpler representation that avoids using the reversed word, advancing the state of the art.
Findings
Linear-time algorithm for seeds computation
Compact representation of all seeds in a word
Improves upon previous O(n log n) algorithm
Abstract
A seed in a word is a relaxed version of a period in which the occurrences of the repeating subword may overlap. We show a linear-time algorithm computing a linear-size representation of all the seeds of a word (the number of seeds might be quadratic). In particular, one can easily derive the shortest seed and the number of seeds from our representation. Thus, we solve an open problem stated in the survey by Smyth (2000) and improve upon a previous O(n log n) algorithm by Iliopoulos, Moore, and Park (1996). Our approach is based on combinatorial relations between seeds and subword complexity (used here for the first time in context of seeds). In the previous papers, the compact representation of seeds consisted of two independent parts operating on the suffix tree of the word and the suffix tree of the reverse of the word, respectively. Our second contribution is a simpler…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAlgorithms and Data Compression · semigroups and automata theory · Natural Language Processing Techniques
