Title
A Linear-Time Algorithm for Seeds Computation
Abstract
AbstractA seed in a word is a relaxed version of a period in which the occurrences of the repeating subword may overlap. Our first contribution is a linear-time algorithm computing a linear-size representation of all 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 a survey by Smyth from 2000 and improve upon a previous O(n log n)-time algorithm by Iliopoulos et al. from 1996. Our approach is based on combinatorial relations between seeds and subword complexity (used here for the first time in the context of seeds).In previous papers, compact representations of seeds consisted of two independent parts operating on the suffix tree of the input word and the suffix tree of its reverse, respectively. Our second contribution is a novel and significantly simpler representation of all seeds that avoids dealing with the suffix tree of the reversed word. This result is also of independent interest from a combinatorial point of view.A preliminary version of this work, with a much more complex algorithm constructing a representation of seeds on two suffix trees, was presented at the 23rd Annual ACM-SIAM Symposium on Discrete Algorithms (SODA’12).
Year
DOI
Venue
2020
10.1145/3386369
ACM Transactions on Algorithms
Keywords
DocType
Volume
Seed of a word, quasiperiodicity, suffix tree, subword complexity
Journal
16
Issue
ISSN
Citations 
2
1549-6325
1
PageRank 
References 
Authors
0.37
0
5
Name
Order
Citations
PageRank
Tomasz Kociumaka121738.57
Marcin Kubica262929.26
Jakub Radoszewski362450.36
Wojciech Rytter42290181.52
Tomasz Waleń570639.62