Skip to content

feat(strings): expand from 1 to 32 algorithms with 5 new tracker variants - #33

Merged
reshinto merged 1 commit into
mainfrom
feat/strings-expand-algorithms
Apr 5, 2026
Merged

feat(strings): expand from 1 to 32 algorithms with 5 new tracker variants#33
reshinto merged 1 commit into
mainfrom
feat/strings-expand-algorithms

Conversation

@reshinto

@reshinto reshinto commented Apr 5, 2026

Copy link
Copy Markdown
Owner

Summary

  • Expand strings category from 1 algorithm (KMP Search) to 32 algorithms across 6 technique subcategories
  • Add 5 new VisualState kinds (string-palindrome, string-frequency, string-transform, string-trie, string-distance) with dedicated tracker classes and visualizer components
  • Update CI shards from 8 to 10 in both ci.yml and deploy.yml

New Algorithms (31)

Pattern Matching (5 new): Naive Pattern Search, Rabin-Karp Search, Boyer-Moore Search, Z-Algorithm, Hamming Distance

Palindrome (3): Palindrome Check, Valid Palindrome, Longest Palindromic Substring

Character Frequency (3): First Non-Repeating Character, Minimum Window Substring, Character Frequency Sort

Transformation (7): Reverse String, Reverse Words, String Compression, Run-Length Decoding, String to Integer (atoi), String Rotation Check, Longest Common Prefix

Trie Operations (5): Trie Insert & Search, Trie Prefix Count, Longest Word in Trie, Auto-Complete with Trie, Aho-Corasick Search

Edit Distance (8): Levenshtein Distance, Jaro-Winkler Similarity, Longest Common Subsequence, Longest Common Substring, Longest Repeated Substring, Suffix Array Construction, Wildcard Matching, Regular Expression Matching

Infrastructure

  • 5 new tracker classes: PalindromeTracker, FrequencyTracker, TransformTracker, TrieTracker, DistanceTracker
  • 5 new visualizer components: PalindromeVisualizer, FrequencyVisualizer, TransformVisualizer, TrieVisualizer, DistanceVisualizer
  • InputEditor.tsx switched from KmpSearchInputEditor to GenericIntrospectEditor for strings category
  • VisualizationPanel.tsx updated with 5 new dispatch cases
  • 16 new StepType values added to execution.ts

Per Algorithm (9 files each)

index.ts, step-generator.ts, educational.ts, 3 source files (TS/PY/Java with @step: markers), 2 test files, pipeline story

Test plan

  • npm run lint — passes
  • npm run format:check — passes
  • npm run typecheck — passes
  • npm test — 738 test files, 7089 tests pass
  • npm run e2e — 691 tests, all pass (32 strings tests)
  • Pre-commit hooks pass (prettier, eslint, typecheck)
  • No regressions in existing algorithm tests
  • Documentation updated (README, algorithms-catalog, contributing, architecture, glossary, testing, deployment)

…ants

Add 31 new string algorithms across 6 technique subcategories:
- Pattern Matching (5 new): Naive, Rabin-Karp, Boyer-Moore, Z-Algorithm, Hamming Distance
- Palindrome (3): Palindrome Check, Valid Palindrome, Longest Palindromic Substring
- Character Frequency (3): First Non-Repeating Char, Min Window Substring, Char Freq Sort
- Transformation (7): Reverse String/Words, Compression, Run-Length Decoding, atoi, Rotation, LCP
- Trie Operations (5): Insert/Search, Prefix Count, Longest Word, Auto-Complete, Aho-Corasick
- Edit Distance (8): Levenshtein, Jaro-Winkler, LCS, LCSubstring, LRS, Suffix Array, Wildcard, Regex

Infrastructure: 5 new VisualState kinds (string-palindrome, string-frequency, string-transform,
string-trie, string-distance), 5 tracker classes, 5 visualizer components. Updated CI shards
from 8 to 10 in both ci.yml and deploy.yml. InputEditor switched to GenericIntrospectEditor
for strings category.
@reshinto
reshinto merged commit 60161fc into main Apr 5, 2026
32 checks passed
@reshinto
reshinto deleted the feat/strings-expand-algorithms branch April 5, 2026 19:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant