TY - GEN
T1 - Range LCP
AU - Amir, Amihood
AU - Apostolico, Alberto
AU - Landau, Gad M.
AU - Levy, Avivit
AU - Lewenstein, Moshe
AU - Porat, Ely
PY - 2011
Y1 - 2011
N2 - In this paper, we define the Range LCP problem as follows. Preprocess a string S, of length n, to enable efficient solutions of the following query: Given {i j}, 0 < i ≤ j ≤ n, compute max ℓ, kε{i,...,j} LCP(S ℓ, S k), where LCP(S ℓ, S k ) is the length of the longest common prefix of the suffixes of S starting at locations ℓ and k. This is a natural generalization of the classical LCP problem. Surprisingly, while it is known how to preprocess a string in linear time to enable LCP computation of two suffixes in constant time, this seems quite difficult in the Range LCP problem. It is trivial to answer such queries in time O(|j - i| 2) after a linear-time preprocessing and easy to show an O(1) query algorithm after an O(|S| 2) time preprocessing. We provide algorithms that solve the problem with the following complexities: 1. Preprocessing Time: O(|S|), Space: O(|S|), Query Time: O(|j - i|log log n). 2. Preprocessing Time: no preprocessing, Space: O(|j - i|log|j - i|), Query Time: O(|j - i|log|j - i|). However, the query just gives the pairs with the longest LCP, not the LCP itself. 3. Preprocessing Time: O(|S|log 2 |S|), Space: O(|S|log 1 + ε |S|) for arbitrary small constant ε, Query Time: O(log log |S|).
AB - In this paper, we define the Range LCP problem as follows. Preprocess a string S, of length n, to enable efficient solutions of the following query: Given {i j}, 0 < i ≤ j ≤ n, compute max ℓ, kε{i,...,j} LCP(S ℓ, S k), where LCP(S ℓ, S k ) is the length of the longest common prefix of the suffixes of S starting at locations ℓ and k. This is a natural generalization of the classical LCP problem. Surprisingly, while it is known how to preprocess a string in linear time to enable LCP computation of two suffixes in constant time, this seems quite difficult in the Range LCP problem. It is trivial to answer such queries in time O(|j - i| 2) after a linear-time preprocessing and easy to show an O(1) query algorithm after an O(|S| 2) time preprocessing. We provide algorithms that solve the problem with the following complexities: 1. Preprocessing Time: O(|S|), Space: O(|S|), Query Time: O(|j - i|log log n). 2. Preprocessing Time: no preprocessing, Space: O(|j - i|log|j - i|), Query Time: O(|j - i|log|j - i|). However, the query just gives the pairs with the longest LCP, not the LCP itself. 3. Preprocessing Time: O(|S|log 2 |S|), Space: O(|S|log 1 + ε |S|) for arbitrary small constant ε, Query Time: O(log log |S|).
UR - http://www.scopus.com/inward/record.url?scp=84055217015&partnerID=8YFLogxK
U2 - 10.1007/978-3-642-25591-5_70
DO - 10.1007/978-3-642-25591-5_70
M3 - Conference contribution
AN - SCOPUS:84055217015
SN - 9783642255908
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 683
EP - 692
BT - Algorithms and Computation - 22nd International Symposium, ISAAC 2011, Proceedings
T2 - 22nd International Symposium on Algorithms and Computation, ISAAC 2011
Y2 - 5 December 2011 through 8 December 2011
ER -