Abstract
A closed string is a string with a proper substring that occurs in the string as a prefix and a suffix, but not elsewhere. Closed strings were introduced by Fici (2011) as objects of combinatorial interest in the study of Trapezoidal and Sturmian words. In this paper we present algorithms for computing closed factors (substrings) in strings. First, we consider the problem of greedily factorizing a string into a sequence of longest closed factors. We describe an algorithm for this problem that uses linear time and space. We then consider the related problem of computing, for every position in the string, the longest closed factor starting at that position. We describe a simple algorithm for the problem that runs in O ( n log n / log log n ) time, where n is the length of the string. This also leads to an algorithm to compute the maximal closed factor containing (i.e. covering) each position in the string in O ( n log n / log log n ) time. We also present linear time algorithms to factorize a string into a sequence of shortest closed factors of length at least two, to compute the shortest closed factor of length at least two starting at each position of the string, and to compute a minimal closed factor of length at least two containing each position of the string.
Original language | English |
---|---|
Journal | DISCRETE APPLIED MATHEMATICS |
Early online date | 14 May 2016 |
DOIs | |
Publication status | E-pub ahead of print - 14 May 2016 |
Keywords
- Closed strings
- Borders
- Suffix trees
- Range successor queries
- Manhattan skyline problem