DeepAI AI Chat
Log In Sign Up

Lyndon Array Construction during Burrows-Wheeler Inversion

by   Felipe A. Louza, et al.
Universidade de São Paulo
Università del Piemonte Orientale
University of Campinas
McMaster University

In this paper we present an algorithm to compute the Lyndon array of a string T of length n as a byproduct of the inversion of the Burrows-Wheeler transform of T. Our algorithm runs in linear time using only a stack in addition to the data structures used for Burrows-Wheeler inversion. We compare our algorithm with two other linear-time algorithms for Lyndon array construction and show that computing the Burrows-Wheeler transform and then constructing the Lyndon array is competitive compared to the known approaches. We also propose a new balanced parenthesis representation for the Lyndon array that uses 2n+o(n) bits of space and supports constant time access. This representation can be built in linear time using O(n) words of space, or in O(n n/ n) time using asymptotically the same space as T.


page 1

page 2

page 3

page 4


A Simple Algorithm for Computing the Document Array

We present a simple algorithm for computing the document array given the...

Constructing the Bijective BWT

The Burrows-Wheeler transform (BWT) is a permutation whose applications ...

An in-place, subquadratic algorithm for permutation inversion

We assume the permutation π is given by an n-element array in which the ...

Efficiently Testing Simon's Congruence

Simon's congruence ∼_k is defined as follows: two words are ∼_k-equivale...

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...

Load-Balancing Succinct B Trees

We propose a B tree representation storing n keys, each of k bits, in ei...

Computing the Inversion-Indel Distance

The inversion distance, that is the distance between two unichromosomal ...

Code Repositories


Computing the Lyndon Array in linear time [JDA 2018, arXiv'19]

view repo