Efficiently Testing Simon's Congruence

05/03/2020
by   Paweł Gawrychowski, et al.
0

Simon's congruence ∼_k is defined as follows: two words are ∼_k-equivalent if they have the same set of subsequences of length at most k. We propose an algorithm which computes, given two words s and t, the largest k for which s∼_k t. Our algorithm runs in linear time O(|s|+|t|) when the input words are over the integer alphabet {1,...,|s|+|t|} (or other alphabets which can be sorted in linear time). This approach leads to an optimal algorithm in the case of general alphabets as well. Our results are based on a novel combinatorial approach and a series of efficient data structures.

READ FULL TEXT
research
07/04/2023

Linear-time Computation of DAWGs, Symmetric Indexing Structures, and MAWs for Integer Alphabets

The directed acyclic word graph (DAWG) of a string y of length n is the ...
research
11/03/2021

Linear-time Minimization of Wheeler DFAs

Wheeler DFAs (WDFAs) are a sub-class of finite-state automata which is p...
research
11/05/2020

Less Arbitrary waiting time

Property testing is the cheapest and most precise way of building up a t...
research
10/12/2020

Incomplete Directed Perfect Phylogeny in Linear Time

Reconstructing the evolutionary history of a set of species is a central...
research
06/07/2018

Alignment-free sequence comparison using absent words

Sequence comparison is a prerequisite to virtually all comparative genom...
research
05/26/2021

Boltzmann sampling of irreducible context-free structures in linear time

We continue our program of improving the complexity of so-called Boltzma...
research
09/23/2017

A new indexed approach to render the attractors of Kleinian groups

One widespread procedure to render the attractor of Kleinian groups, pub...

Please sign up or login with your details

Forgot password? Click here to reset