An O(n log n) algorithm for finding all repetitions in a string
Journal of Algorithms
Detecting leftmost maximal periodicities
Discrete Applied Mathematics - Combinatorics and complexity
A Space-Economical Suffix Tree Construction Algorithm
Journal of the ACM (JACM)
Optimal suffix tree construction with large alphabets
FOCS '97 Proceedings of the 38th Annual Symposium on Foundations of Computer Science
Linear pattern matching algorithms
SWAT '73 Proceedings of the 14th Annual Symposium on Switching and Automata Theory (swat 1973)
Space efficient linear time construction of suffix arrays
CPM'03 Proceedings of the 14th annual conference on Combinatorial pattern matching
Simple linear work suffix array construction
ICALP'03 Proceedings of the 30th international conference on Automata, languages and programming
Theoretical Computer Science
The number of runs in a string
Information and Computation
The number of runs in a string: improved analysis of the linear upper bound
STACS'06 Proceedings of the 23rd Annual conference on Theoretical Aspects of Computer Science
Hi-index | 0.00 |
Given a string x=x[1..n], a repetition of period p in x is a substring ur=x[i..i+rp−1], p = |u|, r ≥ 2, where neither u=x[i..i+p−1] nor x[i..i+(r+1)p−1] is a repetition. The maximum number of repetitions in any string x is well known to be Θ(nlog n). A run or maximal periodicity of period p in x is a substring urt=x[i..i+rp+|t|−1] of x, where ur is a repetition, t a proper prefix of x, and no repetition of period p begins at position i – 1 of x or ends at position i + rp + |t|. In 2000 Kolpakov and Kucherov showed that the maximum number ρ(n) of runs in any string x is O(n), but their proof was nonconstructive and provided no specific constant of proportionality. At the same time, they presented experimental data strongly suggesting that ρ(n) n. In this paper, as a first step toward proving this conjecture, we present a periodicity lemma that establishes limitations on the number of squares, and their periods, that can occur over a specified range of positions in x. We then apply this result to specify corresponding limitations on the occurrence of runs.