SIAM Journal on Computing
Fast parallel and serial approximate string matching
Journal of Algorithms
An improved algorithm for approximate string matching
SIAM Journal on Computing
Small-bias probability spaces: efficient constructions and applications
SIAM Journal on Computing
Efficient 2-dimensional approximate matching of half-rectangular figures
Information and Computation
String matching under a general matching relation
Information and Computation
SIAM Journal on Computing
Efficient special cases of Pattern Matching with Swaps
Information Processing Letters
Approximate string matching: a simpler faster algorithm
Proceedings of the ninth annual ACM-SIAM symposium on Discrete algorithms
An Extension of the String-to-String Correction Problem
Journal of the ACM (JACM)
FOCS '97 Proceedings of the 38th Annual Symposium on Foundations of Computer Science
On the complexity of the Extended String-to-String Correction Problem
STOC '75 Proceedings of seventh annual ACM symposium on Theory of computing
Randomized Swap Matching in $O(m \log m \log |\Sigma| )$ time
Randomized Swap Matching in $O(m \'log m \'log |\'Sigma| )$ time
Hi-index | 0.00 |
Let a text string T of n symbols and a pattern string P of m symbols from alphabet Σ be given. A swapped version P′ of P is a length m string derived from P by a series of local swaps, (i.e. p′l ← pl+1 and p′l+1 ← pl) where each element can participate in no more than one swap. The Pattern Matching with Swaps problem is that of finding all locations i of T for which there exists a swapped version P′ of P with an exact matching of P′ in location i of T. Recently, some efficient algorithms were developed for this problem. Their time complexity is better than the best known algorithms for pattern matching with mismatches. However, the Approximate Pattern Matching with Swaps problem was not known to be solved faster than the pattern matching with mismatches problem. In the Approximate Pattern Matching with Swaps problem the output is, for every text location i where there is a swapped match of P, the number of swaps necessary to create the swapped version that matches location i. The fastest known method to-date is that of counting mismatches and dividing by two. The time complexity of this method is O(n√m log m) for a general alphabet Σ. In this paper we show an algorithm that counts the number of swaps at every location where there is a swapped matching in time O(n log m log σ), where σ = min(m, |Σ|). Consequently, the total time for solving the approximate pattern matching with swaps problem is O(f(n, m) + n log m log σ), where f(n, m) is the time necessary for solving the pattern matching with swaps problem.