| name | string-algorithm-matcher |
| description | Match string problems to appropriate algorithms |
| allowed-tools | ["Read","Write","Grep","Glob"] |
| graph | {"domains":["domain:computer-science"],"specializations":["specialization:algorithms-optimization"],"skillAreas":["skill-area:string-matching","skill-area:dynamic-programming"],"roles":["role:backend-engineer","role:computational-scientist"]} |
String Algorithm Matcher Skill
Purpose
Match string processing problems to the most appropriate algorithms based on requirements and constraints.
Capabilities
- Pattern matching algorithm selection (KMP, Z, Rabin-Karp)
- Suffix structure selection (array vs tree vs automaton)
- Palindrome detection algorithm selection
- Rolling hash implementation guidance
- String DP technique matching
Target Processes
- pattern-matching-algorithms
- trie-suffix-structures
- string-processing
Algorithm Selection Guide
Single Pattern Matching
| Scenario | Algorithm | Complexity |
|---|
| Single pattern | KMP | O(n+m) |
| Multiple patterns | Aho-Corasick | O(n+m+z) |
| Approximate match | Rolling Hash | O(n*m) average |
Suffix Structures
| Need | Structure | Build Time |
|---|
| Substring search | Suffix Array | O(n log n) |
| Multiple queries | Suffix Tree | O(n) |
| Subsequence counting | Suffix Automaton | O(n) |
Palindromes
| Problem | Algorithm |
|---|
| Longest palindromic substring | Manacher |
| Palindrome partitioning | DP + Manacher |
| Palindrome queries | Hashing |
Input Schema
{
"type": "object",
"properties": {
"problemDescription": { "type": "string" },
"problemType": {
"type": "string",
"enum": ["patternMatch", "suffixQueries", "palindrome", "subsequence", "dp"]
},
"constraints": { "type": "object" }
},
"required": ["problemDescription"]
}
Output Schema
{
"type": "object",
"properties": {
"success": { "type": "boolean" },
"algorithm": { "type": "string" },
"complexity": { "type": "string" },
"alternatives": { "type": "array" },
"implementation": { "type": "string" }
},
"required": ["success", "algorithm"]
}