> ## Documentation Index
> Fetch the complete documentation index at: https://leetcode-py.wisl.dev/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> leetcode-py is a Python LeetCode practice environment generator with one CLI: lcpy. It is not a service or platform.
> Each problem is a directory under leetcode/ with README.md, solution.py, test_solution.py, helpers.py, and playground.ipynb. lcpy gen creates them from JSON templates bundled with the package.
> Examples are backed by tests; copy them verbatim.

# String Matching in Python with Tests

> All 12 String Matching LeetCode problems with tested Python solutions.

String Matching holds 12 problems (7 Easy, 3 Medium, 2 Hard).
Generate any of them into the current directory with `lcpy gen -n <number>`.

| # | Problem | Difficulty | Solution |
| - | - | - | - |
| 28 | [Find the Index of the First Occurrence in a String](https://leetcode-py.wisl.dev/problems/find-the-index-of-the-first-occurrence-in-a-string) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/find_the_index_of_the_first_occurrence_in_a_string/solution.py) |
| 214 | [Shortest Palindrome](https://leetcode-py.wisl.dev/problems/shortest-palindrome) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/shortest_palindrome/solution.py) |
| 459 | [Repeated Substring Pattern](https://leetcode-py.wisl.dev/problems/repeated-substring-pattern) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/repeated_substring_pattern/solution.py) |
| 572 | [Subtree of Another Tree](https://leetcode-py.wisl.dev/problems/subtree-of-another-tree) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/subtree_of_another_tree/solution.py) |
| 616 | [Add Bold Tag in String](https://leetcode-py.wisl.dev/problems/add-bold-tag-in-string) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/add_bold_tag_in_string/solution.py) |
| 686 | [Repeated String Match](https://leetcode-py.wisl.dev/problems/repeated-string-match) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/repeated_string_match/solution.py) |
| 758 | [Bold Words in String](https://leetcode-py.wisl.dev/problems/bold-words-in-string) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/bold_words_in_string/solution.py) |
| 796 | [Rotate String](https://leetcode-py.wisl.dev/problems/rotate-string) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/rotate_string/solution.py) |
| 1408 | [String Matching in an Array](https://leetcode-py.wisl.dev/problems/string-matching-in-an-array) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/string_matching_in_an_array/solution.py) |
| 2185 | [Counting Words With a Given Prefix](https://leetcode-py.wisl.dev/problems/counting-words-with-a-given-prefix) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/counting_words_with_a_given_prefix/solution.py) |
| 3042 | [Count Prefix and Suffix Pairs I](https://leetcode-py.wisl.dev/problems/count-prefix-and-suffix-pairs-i) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/count_prefix_and_suffix_pairs_i/solution.py) |
| 3045 | [Count Prefix and Suffix Pairs II](https://leetcode-py.wisl.dev/problems/count-prefix-and-suffix-pairs-ii) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/count_prefix_and_suffix_pairs_ii/solution.py) |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.