We consider string matching with variable length gaps. Given a string T and
a pattern P consisting of strings separated by variable length gaps
(arbitrary strings of length in a specified range), the problem is to find all
ending positions of substrings in T that match P. This problem is a basic
primitive in computational biology applications. Let m and n be the lengths
of P and T, respectively, and let k be the number of strings in P. We
present a new algorithm achieving time O(nlogk+m+α) and space O(m+A), where A is the sum of the lower bounds of the lengths of the gaps in
P and α is the total number of occurrences of the strings in P
within T. Compared to the previous results this bound essentially achieves
the best known time and space complexities simultaneously. Consequently, our
algorithm obtains the best known bounds for almost all combinations of m,
n, k, A, and α. Our algorithm is surprisingly simple and
straightforward to implement. We also present algorithms for finding and
encoding the positions of all strings in P for every match of the pattern.Comment: draft of full version, extended abstract at SPIRE 201