Combinatorics on words began more than a century ago with a demonstration that an infinitely long string with
no
repetitions could be constructed on an alphabet of only three letters. Computing
all
the repetitions (such as ⋯
TTT
⋯ or ⋯
CGACGA
⋯ ) in a given string
x
of length
n
is one of the oldest and most important problems of computational stringology, requiring
time in the worst case. About a dozen years ago, it was discovered that repetitions can be computed as a by-product of the
Θ
(
n
)-time computation of all the
maximal periodicities
or
runs
in
x
. However, even though the computation is linear, it is also brute force: global data structures, such as the
suffix array
, the
longest common prefix array
and the
Lempel–Ziv factorization
, need to be computed in a preprocessing phase. Furthermore, all of this effort is required despite the fact that the expected number of runs in a string is generally a small fraction of the string length. In this paper, I explore the possibility that repetitions (perhaps also other regularities in strings) can be computed in a manner commensurate with the size of the output.