Order-Preserving Squares in Strings

02/01/2023
by   Paweł Gawrychowski, et al.
0

An order-preserving square in a string is a fragment of the form uv where u≠ v and u is order-isomorphic to v. We show that a string w of length n over an alphabet of size σ contains 𝒪(σ n) order-preserving squares that are distinct as words. This improves the upper bound of 𝒪(σ^2n) by Kociumaka, Radoszewski, Rytter, and Waleń [TCS 2016]. Further, for every σ and n we exhibit a string with Ω(σ n) order-preserving squares that are distinct as words, thus establishing that our upper bound is asymptotically tight. Finally, we design an 𝒪(σ n) time algorithm that outputs all order-preserving squares that occur in a given string and are distinct as words. By our lower bound, this is optimal in the worst case.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
06/24/2020

Lyndon Words, the Three Squares Lemma, and Primitive Squares

We revisit the so-called "Three Squares Lemma" by Crochemore and Rytter ...
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
06/29/2020

The Number of Repetitions in 2D-Strings

The notions of periodicity and repetitions in strings, and hence these o...
research
05/25/2018

Algorithms for Anti-Powers in Strings

A string S[1,n] is a power (or tandem repeat) of order k and period n/k ...
research
09/19/2022

Convergence of the number of period sets in strings

Consider words of length n. The set of all periods of a word of length n...
research
03/10/2020

On a Class of Markov Order Estimators Based on PPM and Other Universal Codes

We investigate a class of estimators of the Markov order for stationary ...
research
01/25/2022

The development of a portable elbow exoskeleton with a Twisted Strings Actuator to assist patients with upper limb inhabitation

Over the years, the number of exoskeleton devices utilized for upper-lim...

Please sign up or login with your details

Forgot password? Click here to reset