Fast algorithms for finding nearest common ancestors
SIAM Journal on Computing
An O(n log n) algorithm for finding all repetitions in a string
Journal of Algorithms
Journal of the ACM (JACM)
An Alphabet Independent Approach to Two-Dimensional Pattern Matching
SIAM Journal on Computing
LATIN '00 Proceedings of the 4th Latin American Symposium on Theoretical Informatics
On maximal suffixes and constant-space linear-time versions of KMP algorithm
Theoretical Computer Science
Time-space-optimal string matching (Preliminary Report)
STOC '81 Proceedings of the thirteenth annual ACM symposium on Theory of computing
Structuring labeled trees for optimal succinctness, and beyond
FOCS '05 Proceedings of the 46th Annual IEEE Symposium on Foundations of Computer Science
Compressed indexes for dynamic text collections
ACM Transactions on Algorithms (TALG)
Compressed Index for Dictionary Matching
DCC '08 Proceedings of the Data Compression Conference
Succinct Index for Dynamic Dictionary Matching
ISAAC '09 Proceedings of the 20th International Symposium on Algorithms and Computation
Small-space 2D compressed dictionary matching
CPM'10 Proceedings of the 21st annual conference on Combinatorial pattern matching
Succinct dictionary matching with no slowdown
CPM'10 Proceedings of the 21st annual conference on Combinatorial pattern matching
Faster compressed dictionary matching
SPIRE'10 Proceedings of the 17th international conference on String processing and information retrieval
Hi-index | 0.00 |
The dictionary matching problem seeks all locations in a given text that match any of the patterns in a given dictionary. Efficient algorithms for dictionary matching scan the text once, searching for all patterns simultaneously. This paper presents the first 2-dimensional dictionary matching algorithm that operates in small space and linear time. Given d patterns, D = {P1,...,Pd}, each of size m × m, and a text T of size n × n, our algorithm finds all occurrences of Pi, 1 ≤ i ≤ d, in T. The preprocessing stores the dictionary in entropy compressed form, in |D|Hk(D)+O(|D|) bits. Our algorithm uses O(dm log dm) bits of extra space. The time complexity of our algorithm is linear O(|D| + |T|).