Computing palindromes on a trie in linear time
Abstract
A trie is a rooted tree such that each edge is labeled by a single character from the alphabet, and the labels of out-going edges from the same node are mutually distinct. Given a trie with edges, we show how to compute all distinct palindromes and all maximal palindromes on in time, in the case of integer alphabets of size polynomial in . This improves the state-of-the-art -time algorithms by Funakoshi et al. [PCS 2019], where is the height of . Using our new algorithms, the eertree with suffix links for a given trie can readily be obtained in time. Further, our trie-based -space data structure allows us to report all distinct palindromes and maximal palindromes in a query string represented in the trie , in output optimal time. This is an improvement over an existing (na\"ive) solution that precomputes and stores all distinct palindromes and maximal palindromes for each and every string in the trie separately, using a total preprocessing time and space, and reports them in output optimal time upon query.
Cite
@article{arxiv.2211.03995,
title = {Computing palindromes on a trie in linear time},
author = {Takuya Mieno and Mitsuru Funakoshi and Shunsuke Inenaga},
journal= {arXiv preprint arXiv:2211.03995},
year = {2022}
}
Comments
accepted to ISAAC 2022