TY - JOUR
T1 - Detecting regularities on grammar-compressed strings
AU - I, Tomohiro
AU - Matsubara, Wataru
AU - Shimohira, Kouji
AU - Inenaga, Shunsuke
AU - Bannai, Hideo
AU - Takeda, Masayuki
AU - Narisawa, Kazuyuki
AU - Shinohara, Ayumi
N1 - Publisher Copyright:
© 2014 Elsevier Inc. All rights reserved.
PY - 2015/2/1
Y1 - 2015/2/1
N2 - We address the problems of detecting and counting various forms of regularities in a string represented as a straight-line program (SLP) which is essentially a context free grammar in the Chomsky normal form. Given an SLP of size n that represents a string s of length N, our algorithm computes all runs and squares in s in O(n3h) time and O(n2) space, where h is the height of the derivation tree of the SLP. We also show an algorithm to compute all gapped-palindromes in O(n3h + gnh log N) time and O(n2) space, where g is the length of the gap. As one of the main components of the above solution, we propose a new technique called approximate doubling which seems to be a useful tool for a wide range of algorithms on SLPs. Indeed, we show that the technique can be used to compute the periods and covers of the string in O(n2h) time and O(nh(n + log2 N)) time, respectively.
AB - We address the problems of detecting and counting various forms of regularities in a string represented as a straight-line program (SLP) which is essentially a context free grammar in the Chomsky normal form. Given an SLP of size n that represents a string s of length N, our algorithm computes all runs and squares in s in O(n3h) time and O(n2) space, where h is the height of the derivation tree of the SLP. We also show an algorithm to compute all gapped-palindromes in O(n3h + gnh log N) time and O(n2) space, where g is the length of the gap. As one of the main components of the above solution, we propose a new technique called approximate doubling which seems to be a useful tool for a wide range of algorithms on SLPs. Indeed, we show that the technique can be used to compute the periods and covers of the string in O(n2h) time and O(nh(n + log2 N)) time, respectively.
UR - http://www.scopus.com/inward/record.url?scp=85027953511&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85027953511&partnerID=8YFLogxK
U2 - 10.1016/j.ic.2014.09.009
DO - 10.1016/j.ic.2014.09.009
M3 - Article
AN - SCOPUS:85027953511
SN - 0890-5401
VL - 240
SP - 74
EP - 89
JO - Information and Computation
JF - Information and Computation
ER -