Permutation Matching Under Parikh Budgets: Linear-Time Detection, Packing, and Disjoint Selection
MD Nazmul Alam Shanto, Md. Tanzeem Rahat, Md. Manzurul Hasan
TL;DR
This work studies permutation (jumbled/Abelian) pattern matching on a general alphabet by introducing a concise sliding-window framework that maintains the Parikh-vector difference. The approach yields a linear-time, $O(n+\sigma)$-space method for exact permutation matching and extends to two optimization variants: MFSP, which finds the longest substring under a Parikh budget in $O(n+\sigma)$ time, and a linear-time strategy for selecting a maximum number of non-overlapping matches via interval packing. The results connect frequency-based string matching with packing-like optimization primitives and are complemented by experimental observations highlighting practical efficiency and implementation considerations such as alphabet compression. Together, these contributions provide provably correct, tight-bound algorithms for detection, packing under budgets, and disjoint selection in permutation matching, with implications for resource-constrained pattern searching and fast scanning pipelines.
Abstract
We study permutation (jumbled/Abelian) pattern matching over a general alphabet $Σ$. Given a pattern P of length m and a text T of length n, the classical task is to decide whether T contains a length-m substring whose Parikh vector equals that of P . While this existence problem admits a linear-time sliding-window solution, many practical applications require optimization and packing variants beyond mere detection. We present a unified sliding-window framework based on maintaining the Parikh-vector difference between P and the current window of T , enabling permutation matching in O(n + σ) time and O(σ) space, where σ = |Σ|. Building on this foundation, we introduce a combinatorial-optimization variant that we call Maximum Feasible Substring under Pattern Supply (MFSP): find the longest substring S of T whose symbol counts are component-wise bounded by those of P . We show that MFSP can also be solved in O(n + σ) time via a two-pointer feasibility maintenance algorithm, providing an exact packing interpretation of P as a resource budget. Finally, we address non-overlapping occurrence selection by modeling each permutation match as an equal-length interval and proving that a greedy earliest-finishing strategy yields a maximum-cardinality set of disjoint matches, computable in linear time once all matches are enumerated. Our results provide concise, provably correct algorithms with tight bounds, and connect frequency-based string matching to packing-style optimization primitives.
