Efficiently computing runs on a trie

Ryo Sugahara,Yuto Nakashima,Shunsuke Inenaga,Hideo Bannai,Masayuki Takeda
DOI: https://doi.org/10.48550/arXiv.1901.10633
2021-04-20
Abstract:A maximal repetition, or run, in a string, is a maximal periodic substring whose smallest period is at most half the length of the substring. In this paper, we consider runs that correspond to a path on a trie, or in other words, on a rooted edge-labeled tree where the endpoints of the path must be a descendant/ancestor of the other. For a trie with $n$ edges, we show that the number of runs is less than $n$. We also show an asymptotic lower bound on the maximum density of runs in tries: $\lim_{n\rightarrow\infty}\rho_\mathcal{T}(n)/n \geq 0.993238$ where $\rho_{\mathcal{T}}(n)$ is the maximum number of runs in a trie with $n$ edges. Furthermore, we also show an $O(n\log \log n)$ time and $O(n)$ space algorithm for finding all runs.
Data Structures and Algorithms
What problem does this paper attempt to address?