Functional approach to data structures and its use in multidimensional searching
SIAM Journal on Computing
How many squares can a string contain?
Journal of Combinatorial Theory Series A
A linear-time algorithm for a special case of disjoint set union
STOC '83 Proceedings of the fifteenth annual ACM symposium on Theory of computing
Linear-time computation of local periods
Theoretical Computer Science
Linear time algorithms for finding and representing all the tandem repeats in a string
Journal of Computer and System Sciences
A simple proof that a word of length n has at most 2n distinct squares
Journal of Combinatorial Theory Series A
Algorithms on Strings
Succinct data structures for flexible text retrieval systems
Journal of Discrete Algorithms
A note on the number of squares in a word
Theoretical Computer Science
Fast and Practical Algorithms for Computing All the Runs in a String
CPM '07 Proceedings of the 18th annual symposium on Combinatorial Pattern Matching
Repetitions in strings: Algorithms and combinatorics
Theoretical Computer Science
On the Maximal Number of Cubic Subwords in a String
Combinatorial Algorithms
A new succinct representation of RMQ-information and improvements in the enhanced suffix array
ESCAPE'07 Proceedings of the First international conference on Combinatorics, Algorithms, Probabilistic and Experimental Methodologies
Efficient seeds computation revisited
CPM'11 Proceedings of the 22nd annual conference on Combinatorial pattern matching
On primary and secondary repetitions in words
Theoretical Computer Science
Efficient data structures for the factor periodicity problem
SPIRE'12 Proceedings of the 19th international conference on String Processing and Information Retrieval
New simple efficient algorithms computing powers and runs in strings
Discrete Applied Mathematics
Extracting powers and periods in a word from its runs structure
Theoretical Computer Science
Hi-index | 0.00 |
A breakthrough in the field of text algorithms was the discovery of the fact that the maximal number of runs in a string of length n is O(n) and that they can all be computed in O(n) time. We study some applications of this result. New simpler O(n) time algorithms are presented for a few classical string problems: computing all distinct kth string powers for a given k, in particular squares for k = 2, and finding all local periods in a given string of length n. Additionally, we present an efficient algorithm for testing primitivity of factors of a string and computing their primitive roots. Applications of runs, despite their importance, are underrepresented in existing literature (approximately one page in the paper of Kolpakov & Kucherov, 1999). In this paper we attempt to fill in this gap. We use Lyndon words and introduce the Lyndon structure of runs as a useful tool when computing powers. In problems related to periods we use some versions of the Manhattan skyline problem.