Near-Optimal Computation of Runs over General Alphabet via Non-Crossing LCE Queries - Crochemore, Maxime; Iliopoulos, Costas S.; Kociumaka, Tomasz; Kundu, Ritu; Pissis, Solon P.; Radoszewski, Jakub; Rytter, Wojciech; Waleń, Tomasz (String Processing and Information Retrieval, 2016)
Longest common extension queries (LCE queries) and runs are ubiquitous in algorithmic stringology. Linear-time algorithms computing runs and preprocessing for constant-time LCE queries have been known for over a decade. However, these algorithms assume a linearly-sortable integer alphabet. A recent breakthrough paper by Bannai et al. (SODA 2015) showed a link between the two notions: all the runs in a string can be computed via a linear number of LCE queries. The first to consider these problems over a general ordered alphabet was Kosolobov (Inf. Process. Lett., 2016), who presented an $$\mathcal {O}(n (\log n)^{2/3})$$ -time algorithm for answering $$\mathcal {O}(n)$$ LCE queries. This result was improved by Gawrychowski et al. (CPM 2016) to $$\mathcal {O}(n \log \log n)$$ time. In this work we note a special non-crossing property of LCE queries asked in the runs computation. We show that any n such non-crossing queries can be answered on-line in $$\mathcal {O}(n α (n))$$ time, where $$α (n)$$ is the inverse Ackermann function, which yields an $$\mathcal {O}(n α (n))$$ -time algorithm for computing runs.