string-matching

Guide exact string-matching algorithm selection with CLRS-style cost analysis.

7|Updated Apr 24, 2026
One-click install
npx skills add https://github.com/Arcadi4/nerdy --skill string-matching
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: string-matching
Source: https://github.com/Arcadi4/nerdy/tree/main/clrs/string-matching
Command: npx skills add https://github.com/Arcadi4/nerdy --skill string-matching

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

String matching problems determine whether a pattern occurs within a text and guide the choice of algorithm to balance correctness and performance across workloads.

Core Features & Use Cases

  • Guidance on exact matching methods including naive, Rabin-Karp, finite-automata, KMP, and suffix-array approaches.
  • CLRS-style costs, correctness proofs, and explicit handling of overlaps to support rigorous explanations.
  • Use cases cover exact substring search, overlap-preserving matches, and structure queries like LCP and suffix arrays.

Quick Start

Describe your workload and ask for the recommended exact string-matching method to apply.

Frequently Asked Questions about string-matching

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
What is the best exact string matching algorithm for overlapping pattern matches?▼

For overlapping pattern matches, the Knuth-Morris-Pratt algorithm and finite-automata approaches are recommended. They use prefix functions or transition tables to correctly handle overlaps, providing rigorous CLRS-style cost analysis for exact string matching tasks.

How does the Rabin-Karp algorithm compare to KMP for substring search?▼

Rabin-Karp uses rolling hashes for substring search, making it efficient for multiple pattern matching, while KMP uses a prefix function to avoid redundant comparisons. The choice depends on your workload and whether you need hash-based matching or deterministic finite-automata processing.

When do I need a suffix array or LCP array for string processing?▼

You need suffix arrays and LCP arrays for advanced string processing tasks like querying repeated substrings or performing Burrows-Wheeler transforms. These structures enable efficient structure queries beyond basic exact matching, supporting rigorous correctness proofs and cost analysis.

How do I calculate the time complexity of finite-automata string matching?▼

Finite-automata string matching complexity is calculated by analyzing transition table construction and matching phases. The guidance prescribes CLRS-style formatting with display math costs, ensuring explicit handling of automata states and transitions for rigorous performance evaluation.

Does naive string matching work for large texts with many overlapping patterns?▼

Naive matching is inefficient for large texts with overlapping patterns due to redundant character comparisons. For exact string matching in workloads with overlaps, KMP or finite-automata methods are recommended to optimize correctness and performance.

Why use Burrows-Wheeler transform in exact string matching workflows?▼

The Burrows-Wheeler transform is used in exact string matching workflows to enable efficient backward search and compression. It integrates with suffix arrays to support advanced structure queries, providing a rigorous foundation for complex pattern-search tasks.