A comparison of approximate string matching algorithms
Software—Practice & Experience
Compact pat trees
Optimal storage allocation for serial files
Communications of the ACM
High-order entropy-compressed text indexes
SODA '03 Proceedings of the fourteenth annual ACM-SIAM symposium on Discrete algorithms
Proceedings of the 16th Conference on Foundations of Software Technology and Theoretical Computer Science
Efficient algorithms for sequence analysis with concave and convex gap costs
Efficient algorithms for sequence analysis with concave and convex gap costs
Efficient text fingerprinting via Parikh mapping
Journal of Discrete Algorithms
ACM Computing Surveys (CSUR)
Necklaces, convolutions, and X + Y
ESA'06 Proceedings of the 14th conference on Annual European Symposium - Volume 14
Computing rank-convolutions with a mask
ACM Transactions on Algorithms (TALG)
Scaled and permuted string matching
Information Processing Letters
Gapped permutation patterns for comparative genomics
WABI'06 Proceedings of the 6th international conference on Algorithms in Bioinformatics
DLT'11 Proceedings of the 15th international conference on Developments in language theory
Sub-quadratic time and linear space data structures for permutation matching in binary strings
Journal of Discrete Algorithms
CPM'12 Proceedings of the 23rd Annual conference on Combinatorial Pattern Matching
New algorithms for binary jumbled pattern matching
Information Processing Letters
Binary jumbled string matching for highly run-length compressible texts
Information Processing Letters
Algorithms for computing Abelian periods of words
Discrete Applied Mathematics
Hi-index | 0.00 |
Given a string s, the Parikh vector of s, denoted p(s), counts the multiplicity of each character in s. Searching for a match of Parikh vector q (a "jumbled string") in the text s requires to find a substring t of s with p(t) = q. The corresponding decision problem is to verify whether at least one such match exists. So, for example for the alphabet Σ = {a,b,c}, the string s = abaccbabaaa has Parikh vector p(s) = (6,3,2), and the Parikh vector q = (2,1,1) appears once in s in position (1,4). Like its more precise counterpart, the renown Exact String Matching, Jumbled Pattern Matching has ubiquitous applications, e.g., string matching with a dyslectic word processor, table rearrangements, anagram checking, Scrabble playing and, allegedly, also analysis of mass spectrometry data. We consider two simple algorithms for Jumbled Pattern Matching and use very complicated data structures and analytic tools to show that they are not worse than the most obvious algorithm. We also show that we can achieve non-trivial efficient average case behavior, but that's less fun to describe in this abstract so we defer the details to the main part of the article, to be read at the reader's risk... well, at the reader's discretion.