Given a word $w$ and a Parikh vector $\mathcal{ P}$, an abelian run of period $\mathcal{ P}$ in $w$ is a maximal occurrence of a substring of $w$ having abelian period $\mathcal{ P}$. Our main result is an online algorithm that, given a word $w$ of length $n$ over an alphabet of cardinality $\sigma$ and a Parikh vector $\mathcal{ P}$, returns all the abelian runs of period $\mathcal{ P}$ in $w$ in time $O(n)$ and space $O(\sigma+p)$, where $p$ is the norm of $\mathcal{ P}$, i.e., the sum of its components. We also present an online algorithm that computes all the abelian runs with periods of norm $p$ in $w$ in time $O(np)$, for any given norm $p$. Finally, we give an $O(n^2)$-time offline randomized algorithm for computing all the abelian runs of $w$. Its deterministic counterpart runs in $O(n^2\log\sigma)$ time.

Categories: cs.DS

Fast Computation of Abelian Runs