String Matching with a Dynamic Pattern
By: Bruno Monteiro, Vinicius dos Santos
Potential Business Impact:
Finds words in text even when words change.
In this work, we tackle a natural variation of the String Matching Problem on the case of a dynamic pattern, that is, given a static text $T$ and a pattern $P$, we want to support character additions and deletions to the pattern, and after each operation compute how many times it occurs in the text. We show a simple and practical algorithm using Suffix Arrays that achieves $\mathcal O(\log |T|)$ update time, after $\mathcal O(|T|)$ preprocess time. We show how to extend our solution to support substring deletion, transposition (moving a substring to another position of the pattern), and copy (copying a substring and pasting it in a specific position), in the same time complexities. Our solution can also be extended to support an online text (adding characters to one end of the text), maintaining the same amortized bounds.
Similar Papers
Compressed Dictionary Matching on Run-Length Encoded Strings
Data Structures and Algorithms
Finds words in zipped text faster.
Near-Optimal Property Testers for Pattern Matching
Data Structures and Algorithms
Finds patterns in text faster, even with errors.
Logarithmic-Time Internal Pattern Matching Queries in Compressed and Dynamic Texts
Data Structures and Algorithms
Find patterns in text faster, even when text changes.