Creative Commons Attribution 3.0 Unported license
In the pattern matching with d wildcards problem we are given a text T of length n and a pattern P of length m that contains d wildcard characters, each denoted by a special symbol '?'. A wildcard character matches any other character. The goal is to establish for each m-length substring of T whether it matches P. In the streaming model variant of the pattern matching with d wildcards problem the text T arrives one character at a time and the goal is to report, before the next character arrives, if the last m characters match P while using only o(m) words of space.
In this paper we introduce two new algorithms for the d wildcard pattern matching problem in the streaming model.
The first is a randomized Monte Carlo algorithm that is parameterized by a constant 0<=delta<=1. This algorithm uses ~O(d^{1-delta}) amortized time per character and ~O(d^{1+delta}) words of space. The second algorithm, which is used as a black box in the first algorithm, is a randomized Monte Carlo algorithm which uses O(d+log m) worst-case time per character and O(d log m) words of space.
@InProceedings{golan_et_al:LIPIcs.ESA.2016.44,
author = {Golan, Shay and Kopelowitz, Tsvi and Porat, Ely},
title = {{Streaming Pattern Matching with d Wildcards}},
booktitle = {24th Annual European Symposium on Algorithms (ESA 2016)},
pages = {44:1--44:16},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-015-6},
ISSN = {1868-8969},
year = {2016},
volume = {57},
editor = {Sankowski, Piotr and Zaroliagis, Christos},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ESA.2016.44},
URN = {urn:nbn:de:0030-drops-63561},
doi = {10.4230/LIPIcs.ESA.2016.44},
annote = {Keywords: wildcards, don't-cares, streaming pattern matching, fingerprints}
}