TCS Journal 2016 Journal Article
Algorithms for Jumbled Indexing, Jumbled Border and Jumbled Square on run-length encoded strings
- Amihood Amir
- Alberto Apostolico
- Tirza Hirst
- Gad M. Landau
- Noa Lewenstein
- Liat Rozenberg
In this paper we investigate jumbled (Abelian) versions of three classical strings problems. In all these problems we assume the input string S [ 1. . n ] is given in its run-length format S ′ [ 1. . r ]. The Jumbled Indexing problem is the problem of indexing a string S ′ [ 1. . r ] over | Σ | for histogram queries, i. e. given a pattern P, we want to find all substrings of S that are permutations of P. We provide an algorithm that constructs an index of size O ( r 2 | Σ | ) in time O ( r 2 ( log r + | Σ | log | Σ | ) ), which allows answering histogram queries in O ( | Σ | 3 log r ) -time. The Jumbled Border problem is the problem of finding for every location j in S, the longest proper prefix of S [ 1. . j ] that is also a permutation of a proper suffix of S [ 1. . j ], if such exists. We provide an algorithm that solves this problem in O ( | Σ | ( r 2 + n ) ) time, and O ( | Σ | n ) space. A Jumbled Square is a string of the form x x ¯, where x ¯ is a permutation of x. The Jumbled Square problem is the problem of finding for every location j in S, the longest jumbled square that ends in j, if such exists. We provide an algorithm that solves this problem in O ( | Σ | ( r 2 + n ) ) time, and O ( | Σ | n ) space.