Linear Time Runs over General Ordered Alphabets

02/17/2021
āˆ™
by   Jonas Ellert, et al.
āˆ™
0
āˆ™

A run in a string is a maximal periodic substring. For example, the string contains the runs = ()^3/2 and = ^2. There are less than n runs in any length-n string, and computing all runs for a string over a linearly-sortable alphabet takes š’Ŗ(n) time (Bannai et al., SODA 2015). Kosolobov conjectured that there also exists a linear time runs algorithm for general ordered alphabets (Inf. Process. Lett. 2016). The conjecture was almost proven by Crochemore et al., who presented an š’Ŗ(nĪ±(n)) time algorithm (where Ī±(n) is the extremely slowly growing inverse Ackermann function). We show how to achieve š’Ŗ(n) time by exploiting combinatorial properties of the Lyndon array, thus proving Kosolobov's conjecture.

READ FULL TEXT

page 1

page 3

page 4

page 13

research
āˆ™ 06/29/2020

The Number of Repetitions in 2D-Strings

The notions of periodicity and repetitions in strings, and hence these o...
research
āˆ™ 12/21/2018

A Simple Algorithm for Computing the Document Array

We present a simple algorithm for computing the document array given the...
research
āˆ™ 08/08/2023

Linear Time Construction of Cover Suffix Tree and Applications

The Cover Suffix Tree (CST) of a string T is the suffix tree of T with a...
research
āˆ™ 03/13/2023

Optimal Square Detection Over General Alphabets

Squares (fragments of the form xx, for some string x) are arguably the m...
research
āˆ™ 01/30/2019

Computing runs on a trie

A maximal repeat, or run, in a string, is a periodically maximal substri...
research
āˆ™ 06/21/2021

Computing the original eBWT faster, simpler, and with less memory

Mantaci et al. [TCS 2007] defined the eBWT to extend the definition of t...
research
āˆ™ 06/03/2019

Direct Linear Time Construction of Parameterized Suffix and LCP Arrays for Constant Alphabets

We present the first worst-case linear time algorithm that directly comp...

Please sign up or login with your details

Forgot password? Click here to reset