Table of Contents
Fetching ...

Online Computation of Palindromes and Suffix Trees on Tries

Hiroki Shibata, Mitsuru Funakoshi, Takuya Mieno, Masakazu Ishihata, Yuto Nakashima, Shunsuke Inenaga, Hideo Bannai, Masayuki Takeda

TL;DR

We address online computation of palindromes in a dynamic trie under leaf insertions and deletions. The work delivers sub-quadratic online algorithms for maximal palindromes and a suite of online algorithms for distinct palindromes based on two frameworks: EERTREE-on-forward-trie and suffix-tree-on-backward-trie, with efficient online constructions of the suffix tree and EERTREE as by-products. Key results include an online maximal-palindrome algorithm running in $O\bigl(N \min(\log h, \sigma)\bigr)$ time and $O(N)$ space, and online distinct-palindrome algorithms with various time/space trade-offs leveraging predecessor structures, colored predecessors, and specialized links (quickLink/directLink). The suffix-tree-based approach enables online suffix-tree construction for a trie and yields an overall online distinct-palindrome computation bound of $O\bigl(N (\text{CP}_{\textincr}(N,\sigma) + \min(\log h, \sigma))\bigr)$, reinforcing the practical impact for dynamic string data structures. These results extend static, linear-time palindrome enumeration to fully online, dynamic-trie settings and open avenues for efficient real-time indexing in related structures.

Abstract

We consider the problems of computing maximal palindromes and distinct palindromes in a trie. A trie is a natural generalization of a string, which can be seen as a single-path tree. There is a linear-time offline algorithm to compute maximal palindromes and distinct palindromes in a given (static) trie whose edge-labels are drawn from a linearly-sortable alphabet [Mieno et al., ISAAC 2022]. In this paper, we tackle problems of palindrome enumeration on dynamic tries which support leaf additions and leaf deletions. We propose the first sub-quadratic algorithms to enumerate palindromes in a dynamic trie. For maximal palindromes, we propose an algorithm that runs in $O(N \min(\log h, σ))$ time and uses $O(N)$ space, where $N$ is the maximum number of edges in the trie, $σ$ is the size of the alphabet, and $h$ is the height of the trie. For distinct palindromes, we develop several online algorithms based on different algorithmic frameworks, including approaches using the EERTREE (a.k.a. palindromic tree) and the suffix tree of a trie. These algorithms support leaf insertions and deletions in the trie and achieve different time and space trade-offs. Furthermore, as a by-product, we present online algorithms to construct the suffix tree and the EERTREE of the input trie, which is of independent interest.

Online Computation of Palindromes and Suffix Trees on Tries

TL;DR

We address online computation of palindromes in a dynamic trie under leaf insertions and deletions. The work delivers sub-quadratic online algorithms for maximal palindromes and a suite of online algorithms for distinct palindromes based on two frameworks: EERTREE-on-forward-trie and suffix-tree-on-backward-trie, with efficient online constructions of the suffix tree and EERTREE as by-products. Key results include an online maximal-palindrome algorithm running in time and space, and online distinct-palindrome algorithms with various time/space trade-offs leveraging predecessor structures, colored predecessors, and specialized links (quickLink/directLink). The suffix-tree-based approach enables online suffix-tree construction for a trie and yields an overall online distinct-palindrome computation bound of , reinforcing the practical impact for dynamic string data structures. These results extend static, linear-time palindrome enumeration to fully online, dynamic-trie settings and open avenues for efficient real-time indexing in related structures.

Abstract

We consider the problems of computing maximal palindromes and distinct palindromes in a trie. A trie is a natural generalization of a string, which can be seen as a single-path tree. There is a linear-time offline algorithm to compute maximal palindromes and distinct palindromes in a given (static) trie whose edge-labels are drawn from a linearly-sortable alphabet [Mieno et al., ISAAC 2022]. In this paper, we tackle problems of palindrome enumeration on dynamic tries which support leaf additions and leaf deletions. We propose the first sub-quadratic algorithms to enumerate palindromes in a dynamic trie. For maximal palindromes, we propose an algorithm that runs in time and uses space, where is the maximum number of edges in the trie, is the size of the alphabet, and is the height of the trie. For distinct palindromes, we develop several online algorithms based on different algorithmic frameworks, including approaches using the EERTREE (a.k.a. palindromic tree) and the suffix tree of a trie. These algorithms support leaf insertions and deletions in the trie and achieve different time and space trade-offs. Furthermore, as a by-product, we present online algorithms to construct the suffix tree and the EERTREE of the input trie, which is of independent interest.
Paper Structure (15 sections, 22 theorems, 1 equation, 4 figures, 1 table)

This paper contains 15 sections, 22 theorems, 1 equation, 4 figures, 1 table.

Key Result

Lemma 1

Figures (4)

  • Figure 1: Examples of arithmetic progressions representing the palindromic suffixes of a string. The first group $G_1$ is represented by $\langle 1, 1, 3 \rangle$, the second group $G_2$ by $\langle 7, 4, 4 \rangle$, and the third group $G_3$ by $\langle 39, 20, 2 \rangle$.
  • Figure 2: The maximal palindrome centered at (i) is $\mathtt{aba}$ and the maximal palindrome centered at (ii) is $\mathtt{babaabab}$. The set of distinct palindromes in this trie is $\{ \mathtt{\varepsilon, a, b, c, aa, bb, aaa, aba, aca, bab}$, $\mathtt{bbb, abba, baab, aabaa, ababa, abbba, baaab, abaaba, baabaab, babaabab} \}$.
  • Figure 3: An illustration of an EERTREE $\mathsf{EERTREE}(T)$ of a string $T = \mathtt{abacaba}$ (left) and the updated tree after a new character $\mathtt{b}$ is appended to it, forming $\mathtt{abacabab}$ (right). The red nodes and edges represent newly created parts of $\mathsf{EERTREE}(T)$. Solid arrows indicate edges in the EERTREE, while dashed arrows represent suffix links. The process of locating the insertion point for the new node is shown by blue arrows. In this example, the insertion point is determined as $\mathsf{slink}(\mathsf{dlink}(\mathsf{LPS}(\mathtt{abacaba}), \mathtt{b})) = \mathsf{slink}(\mathsf{dlink}(\mathtt{abacaba}, \mathtt{b})) = \mathsf{slink}(\mathtt{aba}) = \mathtt{a}$. Since the palindrome $\mathtt{bab}$ does not yet exist in $\mathsf{EERTREE}(T)$, a new node for it is inserted. Note that this procedure for a single string can also be applied to the trie setting, where appending a character corresponds to adding a new leaf.
  • Figure 4: An illustration of the suffix tree $\mathsf{ST}$ of a single string before (left) and after (right) prepending a new character $c$ to $X$, forming $Y = cX$. Nodes and the edge marked in red have to be added in $\mathsf{ST}$. A dashed arrow represents the link labeled with $c$. Note that each starting node of a dashed arrow is marked by $c$. In this figure, $\mathbf{x}' = \mathsf{lca}(\mathbf{x}, \mathbf{z}_2)$ holds, and $\mathbf{w}_2$ is the endpoint of the edge split by inserting the new node $\mathbf{y}'$.

Theorems & Definitions (28)

  • Lemma 1: Lemma 2 of DBLP:journals/tcs/FunakoshiNIBT21
  • Lemma 2
  • Lemma 3
  • proof
  • Lemma 4
  • proof
  • Lemma 5
  • Example 1
  • Example 2
  • Theorem 1
  • ...and 18 more