Fast algorithms for finding nearest common ancestors
SIAM Journal on Computing
On the design of some systolic algorithms
Journal of the ACM (JACM)
Algorithms on strings, trees, and sequences: computer science and computational biology
Algorithms on strings, trees, and sequences: computer science and computational biology
On the sorting-complexity of suffix tree construction
Journal of the ACM (JACM)
Efficient Algorithms for Lempel-Zip Encoding (Extended Abstract)
SWAT '96 Proceedings of the 5th Scandinavian Workshop on Algorithm Theory
Almost Optimal Fully LZW-Compressed Pattern Matching
DCC '99 Proceedings of the Conference on Data Compression
Computational Geometry: Algorithms and Applications
Computational Geometry: Algorithms and Applications
A data structure for orthogonal range queries
SFCS '78 Proceedings of the 19th Annual Symposium on Foundations of Computer Science
Sequence Comparison: Theory and Methods
Sequence Comparison: Theory and Methods
Efficient algorithms to compute compressed longest common substrings and compressed palindromes
Theoretical Computer Science
A fast algorithm for finding the positions of all squares in a run-length encoded string
Theoretical Computer Science
Searching for gapped palindromes
Theoretical Computer Science
Hardness of comparing two run-length encoded strings
Journal of Complexity
A fully compressed algorithm for computing the edit distance of run-length encoded strings
ESA'10 Proceedings of the 18th annual European conference on Algorithms: Part I
Hi-index | 5.23 |
In this paper, we study the palindrome retrieval problem with the input string compressed into run-length encoded form. Given a run-length encoded string rle(T), we show how to preprocess rle(T) to support subsequent queries of the longest palindrome centered at any specified position and having any specified number of mismatches between its arms. We present two algorithms for the problem, both taking time and space polynomial in the compressed string size. Let n denote the number of runs of rle(T) and let k denote the number of mismatches. The first algorithm, devised for small k, identifies the desired palindrome in O(logn+min{k,n}) time with O(nlogn) preprocessing time, while the second algorithm achieves O(log^2n) query time, independent of k, after O(n^2logn)-time preprocessing.