> ## 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 in Python with Tests

> All 380 String LeetCode problems with tested Python solutions. Part 1 of 2: problems 1-200.

String holds 380 problems (100 Easy, 201 Medium, 79 Hard).
Generate any of them into the current directory with `lcpy gen -n <number>`.

| # | Problem | Difficulty | Solution |
| - | - | - | - |
| 3 | [Longest Substring Without Repeating Characters](https://leetcode-py.wisl.dev/problems/longest-substring-without-repeating-characters) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_substring_without_repeating_characters/solution.py) |
| 5 | [Longest Palindromic Substring](https://leetcode-py.wisl.dev/problems/longest-palindromic-substring) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_palindromic_substring/solution.py) |
| 6 | [Zigzag Conversion](https://leetcode-py.wisl.dev/problems/zigzag-conversion) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/zigzag_conversion/solution.py) |
| 8 | [String to Integer (atoi)](https://leetcode-py.wisl.dev/problems/string-to-integer-atoi) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/string_to_integer_atoi/solution.py) |
| 10 | [Regular Expression Matching](https://leetcode-py.wisl.dev/problems/regular-expression-matching) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/regular_expression_matching/solution.py) |
| 12 | [Integer to Roman](https://leetcode-py.wisl.dev/problems/integer-to-roman) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/integer_to_roman/solution.py) |
| 13 | [Roman to Integer](https://leetcode-py.wisl.dev/problems/roman-to-integer) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/roman_to_integer/solution.py) |
| 14 | [Longest Common Prefix](https://leetcode-py.wisl.dev/problems/longest-common-prefix) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_common_prefix/solution.py) |
| 17 | [Letter Combinations of a Phone Number](https://leetcode-py.wisl.dev/problems/letter-combinations-of-a-phone-number) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/letter_combinations_of_a_phone_number/solution.py) |
| 20 | [Valid Parentheses](https://leetcode-py.wisl.dev/problems/valid-parentheses) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/valid_parentheses/solution.py) |
| 22 | [Generate Parentheses](https://leetcode-py.wisl.dev/problems/generate-parentheses) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/generate_parentheses/solution.py) |
| 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) |
| 30 | [Substring with Concatenation of All Words](https://leetcode-py.wisl.dev/problems/substring-with-concatenation-of-all-words) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/substring_with_concatenation_of_all_words/solution.py) |
| 32 | [Longest Valid Parentheses](https://leetcode-py.wisl.dev/problems/longest-valid-parentheses) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_valid_parentheses/solution.py) |
| 38 | [Count and Say](https://leetcode-py.wisl.dev/problems/count-and-say) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/count_and_say/solution.py) |
| 43 | [Multiply Strings](https://leetcode-py.wisl.dev/problems/multiply-strings) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/multiply_strings/solution.py) |
| 44 | [Wildcard Matching](https://leetcode-py.wisl.dev/problems/wildcard-matching) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/wildcard_matching/solution.py) |
| 49 | [Group Anagrams](https://leetcode-py.wisl.dev/problems/group-anagrams) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/group_anagrams/solution.py) |
| 58 | [Length of Last Word](https://leetcode-py.wisl.dev/problems/length-of-last-word) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/length_of_last_word/solution.py) |
| 65 | [Valid Number](https://leetcode-py.wisl.dev/problems/valid-number) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/valid_number/solution.py) |
| 67 | [Add Binary](https://leetcode-py.wisl.dev/problems/add-binary) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/add_binary/solution.py) |
| 68 | [Text Justification](https://leetcode-py.wisl.dev/problems/text-justification) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/text_justification/solution.py) |
| 71 | [Simplify Path](https://leetcode-py.wisl.dev/problems/simplify-path) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/simplify_path/solution.py) |
| 72 | [Edit Distance](https://leetcode-py.wisl.dev/problems/edit-distance) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/edit_distance/solution.py) |
| 76 | [Minimum Window Substring](https://leetcode-py.wisl.dev/problems/minimum-window-substring) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/minimum_window_substring/solution.py) |
| 79 | [Word Search](https://leetcode-py.wisl.dev/problems/word-search) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/word_search/solution.py) |
| 87 | [Scramble String](https://leetcode-py.wisl.dev/problems/scramble-string) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/scramble_string/solution.py) |
| 91 | [Decode Ways](https://leetcode-py.wisl.dev/problems/decode-ways) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/decode_ways/solution.py) |
| 93 | [Restore IP Addresses](https://leetcode-py.wisl.dev/problems/restore-ip-addresses) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/restore_ip_addresses/solution.py) |
| 97 | [Interleaving String](https://leetcode-py.wisl.dev/problems/interleaving-string) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/interleaving_string/solution.py) |
| 115 | [Distinct Subsequences](https://leetcode-py.wisl.dev/problems/distinct-subsequences) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/distinct_subsequences/solution.py) |
| 125 | [Valid Palindrome](https://leetcode-py.wisl.dev/problems/valid-palindrome) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/valid_palindrome/solution.py) |
| 126 | [Word Ladder II](https://leetcode-py.wisl.dev/problems/word-ladder-ii) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/word_ladder_ii/solution.py) |
| 127 | [Word Ladder](https://leetcode-py.wisl.dev/problems/word-ladder) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/word_ladder/solution.py) |
| 131 | [Palindrome Partitioning](https://leetcode-py.wisl.dev/problems/palindrome-partitioning) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/palindrome_partitioning/solution.py) |
| 132 | [Palindrome Partitioning II](https://leetcode-py.wisl.dev/problems/palindrome-partitioning-ii) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/palindrome_partitioning_ii/solution.py) |
| 139 | [Word Break](https://leetcode-py.wisl.dev/problems/word-break) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/word_break/solution.py) |
| 140 | [Word Break II](https://leetcode-py.wisl.dev/problems/word-break-ii) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/word_break_ii/solution.py) |
| 151 | [Reverse Words in a String](https://leetcode-py.wisl.dev/problems/reverse-words-in-a-string) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/reverse_words_in_a_string/solution.py) |
| 159 | [Longest Substring with At Most Two Distinct Characters](https://leetcode-py.wisl.dev/problems/longest-substring-with-at-most-two-distinct-characters) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_substring_with_at_most_two_distinct_characters/solution.py) |
| 161 | [One Edit Distance](https://leetcode-py.wisl.dev/problems/one-edit-distance) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/one_edit_distance/solution.py) |
| 165 | [Compare Version Numbers](https://leetcode-py.wisl.dev/problems/compare-version-numbers) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/compare_version_numbers/solution.py) |
| 166 | [Fraction to Recurring Decimal](https://leetcode-py.wisl.dev/problems/fraction-to-recurring-decimal) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/fraction_to_recurring_decimal/solution.py) |
| 168 | [Excel Sheet Column Title](https://leetcode-py.wisl.dev/problems/excel-sheet-column-title) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/excel_sheet_column_title/solution.py) |
| 171 | [Excel Sheet Column Number](https://leetcode-py.wisl.dev/problems/excel-sheet-column-number) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/excel_sheet_column_number/solution.py) |
| 179 | [Largest Number](https://leetcode-py.wisl.dev/problems/largest-number) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/largest_number/solution.py) |
| 186 | [Reverse Words in a String II](https://leetcode-py.wisl.dev/problems/reverse-words-in-a-string-ii) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/reverse_words_in_a_string_ii/solution.py) |
| 187 | [Repeated DNA Sequences](https://leetcode-py.wisl.dev/problems/repeated-dna-sequences) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/repeated_dna_sequences/solution.py) |
| 205 | [Isomorphic Strings](https://leetcode-py.wisl.dev/problems/isomorphic-strings) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/isomorphic_strings/solution.py) |
| 208 | [Implement Trie (Prefix Tree)](https://leetcode-py.wisl.dev/problems/implement-trie-prefix-tree) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/implement_trie_prefix_tree/solution.py) |
| 211 | [Design Add and Search Words Data Structure](https://leetcode-py.wisl.dev/problems/design-add-and-search-words-data-structure) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/design_add_and_search_words_data_structure/solution.py) |
| 212 | [Word Search II](https://leetcode-py.wisl.dev/problems/word-search-ii) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/word_search_ii/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) |
| 224 | [Basic Calculator](https://leetcode-py.wisl.dev/problems/basic-calculator) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/basic_calculator/solution.py) |
| 227 | [Basic Calculator II](https://leetcode-py.wisl.dev/problems/basic-calculator-ii) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/basic_calculator_ii/solution.py) |
| 241 | [Different Ways to Add Parentheses](https://leetcode-py.wisl.dev/problems/different-ways-to-add-parentheses) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/different_ways_to_add_parentheses/solution.py) |
| 242 | [Valid Anagram](https://leetcode-py.wisl.dev/problems/valid-anagram) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/valid_anagram/solution.py) |
| 243 | [Shortest Word Distance](https://leetcode-py.wisl.dev/problems/shortest-word-distance) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/shortest_word_distance/solution.py) |
| 244 | [Shortest Word Distance II](https://leetcode-py.wisl.dev/problems/shortest-word-distance-ii) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/shortest_word_distance_ii/solution.py) |
| 245 | [Shortest Word Distance III](https://leetcode-py.wisl.dev/problems/shortest-word-distance-iii) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/shortest_word_distance_iii/solution.py) |
| 246 | [Strobogrammatic Number](https://leetcode-py.wisl.dev/problems/strobogrammatic-number) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/strobogrammatic_number/solution.py) |
| 247 | [Strobogrammatic Number II](https://leetcode-py.wisl.dev/problems/strobogrammatic-number-ii) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/strobogrammatic_number_ii/solution.py) |
| 248 | [Strobogrammatic Number III](https://leetcode-py.wisl.dev/problems/strobogrammatic-number-iii) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/strobogrammatic_number_iii/solution.py) |
| 249 | [Group Shifted Strings](https://leetcode-py.wisl.dev/problems/group-shifted-strings) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/group_shifted_strings/solution.py) |
| 257 | [Binary Tree Paths](https://leetcode-py.wisl.dev/problems/binary-tree-paths) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/binary_tree_paths/solution.py) |
| 266 | [Palindrome Permutation](https://leetcode-py.wisl.dev/problems/palindrome-permutation) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/palindrome_permutation/solution.py) |
| 267 | [Palindrome Permutation II](https://leetcode-py.wisl.dev/problems/palindrome-permutation-ii) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/palindrome_permutation_ii/solution.py) |
| 269 | [Alien Dictionary](https://leetcode-py.wisl.dev/problems/alien-dictionary) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/alien_dictionary/solution.py) |
| 271 | [Encode and Decode Strings](https://leetcode-py.wisl.dev/problems/encode-and-decode-strings) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/encode_and_decode_strings/solution.py) |
| 273 | [Integer to English Words](https://leetcode-py.wisl.dev/problems/integer-to-english-words) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/integer_to_english_words/solution.py) |
| 282 | [Expression Add Operators](https://leetcode-py.wisl.dev/problems/expression-add-operators) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/expression_add_operators/solution.py) |
| 288 | [Unique Word Abbreviation](https://leetcode-py.wisl.dev/problems/unique-word-abbreviation) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/unique_word_abbreviation/solution.py) |
| 290 | [Word Pattern](https://leetcode-py.wisl.dev/problems/word-pattern) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/word_pattern/solution.py) |
| 291 | [Word Pattern II](https://leetcode-py.wisl.dev/problems/word-pattern-ii) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/word_pattern_ii/solution.py) |
| 293 | [Flip Game](https://leetcode-py.wisl.dev/problems/flip-game) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/flip_game/solution.py) |
| 297 | [Serialize and Deserialize Binary Tree](https://leetcode-py.wisl.dev/problems/serialize-and-deserialize-binary-tree) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/serialize_and_deserialize_binary_tree/solution.py) |
| 299 | [Bulls and Cows](https://leetcode-py.wisl.dev/problems/bulls-and-cows) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/bulls_and_cows/solution.py) |
| 301 | [Remove Invalid Parentheses](https://leetcode-py.wisl.dev/problems/remove-invalid-parentheses) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/remove_invalid_parentheses/solution.py) |
| 306 | [Additive Number](https://leetcode-py.wisl.dev/problems/additive-number) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/additive_number/solution.py) |
| 316 | [Remove Duplicate Letters](https://leetcode-py.wisl.dev/problems/remove-duplicate-letters) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/remove_duplicate_letters/solution.py) |
| 318 | [Maximum Product of Word Lengths](https://leetcode-py.wisl.dev/problems/maximum-product-of-word-lengths) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/maximum_product_of_word_lengths/solution.py) |
| 320 | [Generalized Abbreviation](https://leetcode-py.wisl.dev/problems/generalized-abbreviation) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/generalized_abbreviation/solution.py) |
| 331 | [Verify Preorder Serialization of a Binary Tree](https://leetcode-py.wisl.dev/problems/verify-preorder-serialization-of-a-binary-tree) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/verify_preorder_serialization_of_a_binary_tree/solution.py) |
| 332 | [Reconstruct Itinerary](https://leetcode-py.wisl.dev/problems/reconstruct-itinerary) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/reconstruct_itinerary/solution.py) |
| 336 | [Palindrome Pairs](https://leetcode-py.wisl.dev/problems/palindrome-pairs) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/palindrome_pairs/solution.py) |
| 340 | [Longest Substring with At Most K Distinct Characters](https://leetcode-py.wisl.dev/problems/longest-substring-with-at-most-k-distinct-characters) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_substring_with_at_most_k_distinct_characters/solution.py) |
| 344 | [Reverse String](https://leetcode-py.wisl.dev/problems/reverse-string) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/reverse_string/solution.py) |
| 345 | [Reverse Vowels of a String](https://leetcode-py.wisl.dev/problems/reverse-vowels-of-a-string) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/reverse_vowels_of_a_string/solution.py) |
| 358 | [Rearrange String k Distance Apart](https://leetcode-py.wisl.dev/problems/rearrange-string-k-distance-apart) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/rearrange_string_k_distance_apart/solution.py) |
| 383 | [Ransom Note](https://leetcode-py.wisl.dev/problems/ransom-note) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/ransom_note/solution.py) |
| 385 | [Mini Parser](https://leetcode-py.wisl.dev/problems/mini-parser) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/mini_parser/solution.py) |
| 387 | [First Unique Character in a String](https://leetcode-py.wisl.dev/problems/first-unique-character-in-a-string) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/first_unique_character_in_a_string/solution.py) |
| 388 | [Longest Absolute File Path](https://leetcode-py.wisl.dev/problems/longest-absolute-file-path) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_absolute_file_path/solution.py) |
| 389 | [Find the Difference](https://leetcode-py.wisl.dev/problems/find-the-difference) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/find_the_difference/solution.py) |
| 392 | [Is Subsequence](https://leetcode-py.wisl.dev/problems/is-subsequence) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/is_subsequence/solution.py) |
| 394 | [Decode String](https://leetcode-py.wisl.dev/problems/decode-string) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/decode_string/solution.py) |
| 395 | [Longest Substring with At Least K Repeating Characters](https://leetcode-py.wisl.dev/problems/longest-substring-with-at-least-k-repeating-characters) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_substring_with_at_least_k_repeating_characters/solution.py) |
| 399 | [Evaluate Division](https://leetcode-py.wisl.dev/problems/evaluate-division) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/evaluate_division/solution.py) |
| 402 | [Remove K Digits](https://leetcode-py.wisl.dev/problems/remove-k-digits) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/remove_k_digits/solution.py) |
| 405 | [Convert a Number to Hexadecimal](https://leetcode-py.wisl.dev/problems/convert-a-number-to-hexadecimal) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/convert_a_number_to_hexadecimal/solution.py) |
| 408 | [Valid Word Abbreviation](https://leetcode-py.wisl.dev/problems/valid-word-abbreviation) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/valid_word_abbreviation/solution.py) |
| 409 | [Longest Palindrome](https://leetcode-py.wisl.dev/problems/longest-palindrome) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_palindrome/solution.py) |
| 411 | [Minimum Unique Word Abbreviation](https://leetcode-py.wisl.dev/problems/minimum-unique-word-abbreviation) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/minimum_unique_word_abbreviation/solution.py) |
| 412 | [Fizz Buzz](https://leetcode-py.wisl.dev/problems/fizz-buzz) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/fizz_buzz/solution.py) |
| 415 | [Add Strings](https://leetcode-py.wisl.dev/problems/add-strings) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/add_strings/solution.py) |
| 418 | [Sentence Screen Fitting](https://leetcode-py.wisl.dev/problems/sentence-screen-fitting) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/sentence_screen_fitting/solution.py) |
| 420 | [Strong Password Checker](https://leetcode-py.wisl.dev/problems/strong-password-checker) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/strong_password_checker/solution.py) |
| 423 | [Reconstruct Original Digits from English](https://leetcode-py.wisl.dev/problems/reconstruct-original-digits-from-english) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/reconstruct_original_digits_from_english/solution.py) |
| 424 | [Longest Repeating Character Replacement](https://leetcode-py.wisl.dev/problems/longest-repeating-character-replacement) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_repeating_character_replacement/solution.py) |
| 425 | [Word Squares](https://leetcode-py.wisl.dev/problems/word-squares) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/word_squares/solution.py) |
| 428 | [Serialize and Deserialize N-ary Tree](https://leetcode-py.wisl.dev/problems/serialize-and-deserialize-n-ary-tree) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/serialize_and_deserialize_n_ary_tree/solution.py) |
| 433 | [Minimum Genetic Mutation](https://leetcode-py.wisl.dev/problems/minimum-genetic-mutation) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/minimum_genetic_mutation/solution.py) |
| 434 | [Number of Segments in a String](https://leetcode-py.wisl.dev/problems/number-of-segments-in-a-string) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/number_of_segments_in_a_string/solution.py) |
| 438 | [Find All Anagrams in a String](https://leetcode-py.wisl.dev/problems/find-all-anagrams-in-a-string) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/find_all_anagrams_in_a_string/solution.py) |
| 439 | [Ternary Expression Parser](https://leetcode-py.wisl.dev/problems/ternary-expression-parser) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/ternary_expression_parser/solution.py) |
| 443 | [String Compression](https://leetcode-py.wisl.dev/problems/string-compression) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/string_compression/solution.py) |
| 449 | [Serialize and Deserialize BST](https://leetcode-py.wisl.dev/problems/serialize-and-deserialize-bst) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/serialize_and_deserialize_bst/solution.py) |
| 451 | [Sort Characters By Frequency](https://leetcode-py.wisl.dev/problems/sort-characters-by-frequency) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/sort_characters_by_frequency/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) |
| 466 | [Count The Repetitions](https://leetcode-py.wisl.dev/problems/count-the-repetitions) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/count_the_repetitions/solution.py) |
| 467 | [Unique Substrings in Wraparound String](https://leetcode-py.wisl.dev/problems/unique-substrings-in-wraparound-string) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/unique_substrings_in_wraparound_string/solution.py) |
| 468 | [Validate IP Address](https://leetcode-py.wisl.dev/problems/validate-ip-address) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/validate_ip_address/solution.py) |
| 471 | [Encode String with Shortest Length](https://leetcode-py.wisl.dev/problems/encode-string-with-shortest-length) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/encode_string_with_shortest_length/solution.py) |
| 472 | [Concatenated Words](https://leetcode-py.wisl.dev/problems/concatenated-words) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/concatenated_words/solution.py) |
| 474 | [Ones and Zeroes](https://leetcode-py.wisl.dev/problems/ones-and-zeroes) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/ones_and_zeroes/solution.py) |
| 481 | [Magical String](https://leetcode-py.wisl.dev/problems/magical-string) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/magical_string/solution.py) |
| 482 | [License Key Formatting](https://leetcode-py.wisl.dev/problems/license-key-formatting) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/license_key_formatting/solution.py) |
| 484 | [Find Permutation](https://leetcode-py.wisl.dev/problems/find-permutation) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/find_permutation/solution.py) |
| 488 | [Zuma Game](https://leetcode-py.wisl.dev/problems/zuma-game) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/zuma_game/solution.py) |
| 499 | [The Maze III](https://leetcode-py.wisl.dev/problems/the-maze-iii) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/the_maze_iii/solution.py) |
| 500 | [Keyboard Row](https://leetcode-py.wisl.dev/problems/keyboard-row) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/keyboard_row/solution.py) |
| 504 | [Base 7](https://leetcode-py.wisl.dev/problems/base-7) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/base_7/solution.py) |
| 514 | [Freedom Trail](https://leetcode-py.wisl.dev/problems/freedom-trail) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/freedom_trail/solution.py) |
| 516 | [Longest Palindromic Subsequence](https://leetcode-py.wisl.dev/problems/longest-palindromic-subsequence) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_palindromic_subsequence/solution.py) |
| 520 | [Detect Capital](https://leetcode-py.wisl.dev/problems/detect-capital) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/detect_capital/solution.py) |
| 521 | [Longest Uncommon Subsequence I](https://leetcode-py.wisl.dev/problems/longest-uncommon-subsequence-i) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_uncommon_subsequence_i/solution.py) |
| 522 | [Longest Uncommon Subsequence II](https://leetcode-py.wisl.dev/problems/longest-uncommon-subsequence-ii) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_uncommon_subsequence_ii/solution.py) |
| 524 | [Longest Word in Dictionary through Deleting](https://leetcode-py.wisl.dev/problems/longest-word-in-dictionary-through-deleting) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_word_in_dictionary_through_deleting/solution.py) |
| 527 | [Word Abbreviation](https://leetcode-py.wisl.dev/problems/word-abbreviation) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/word_abbreviation/solution.py) |
| 535 | [Encode and Decode TinyURL](https://leetcode-py.wisl.dev/problems/encode-and-decode-tinyurl) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/encode_and_decode_tinyurl/solution.py) |
| 536 | [Construct Binary Tree from String](https://leetcode-py.wisl.dev/problems/construct-binary-tree-from-string) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/construct_binary_tree_from_string/solution.py) |
| 537 | [Complex Number Multiplication](https://leetcode-py.wisl.dev/problems/complex-number-multiply) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/complex_number_multiply/solution.py) |
| 539 | [Minimum Time Difference](https://leetcode-py.wisl.dev/problems/minimum-time-difference) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/minimum_time_difference/solution.py) |
| 541 | [Reverse String II](https://leetcode-py.wisl.dev/problems/reverse-string-ii) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/reverse_string_ii/solution.py) |
| 544 | [Output Contest Matches](https://leetcode-py.wisl.dev/problems/output-contest-matches) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/output_contest_matches/solution.py) |
| 551 | [Student Attendance Record I](https://leetcode-py.wisl.dev/problems/student-attendance-record-i) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/student_attendance_record_i/solution.py) |
| 555 | [Split Concatenated Strings](https://leetcode-py.wisl.dev/problems/split-concatenated-strings) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/split_concatenated_strings/solution.py) |
| 556 | [Next Greater Element III](https://leetcode-py.wisl.dev/problems/next-greater-element-iii) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/next_greater_element_iii/solution.py) |
| 557 | [Reverse Words in a String III](https://leetcode-py.wisl.dev/problems/reverse-words-in-a-string-iii) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/reverse_words_in_a_string_iii/solution.py) |
| 564 | [Find the Closest Palindrome](https://leetcode-py.wisl.dev/problems/find-the-closest-palindrome) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/find_the_closest_palindrome/solution.py) |
| 567 | [Permutation in String](https://leetcode-py.wisl.dev/problems/permutation-in-string) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/permutation_in_string/solution.py) |
| 583 | [Delete Operation for Two Strings](https://leetcode-py.wisl.dev/problems/delete-operation-for-two-strings) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/delete_operation_for_two_strings/solution.py) |
| 588 | [Design In-Memory File System](https://leetcode-py.wisl.dev/problems/design-in-memory-file-system) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/design_in_memory_file_system/solution.py) |
| 591 | [Tag Validator](https://leetcode-py.wisl.dev/problems/tag-validator) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/tag_validator/solution.py) |
| 592 | [Fraction Addition and Subtraction](https://leetcode-py.wisl.dev/problems/fraction-addition-and-subtraction) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/fraction_addition_and_subtraction/solution.py) |
| 599 | [Minimum Index Sum of Two Lists](https://leetcode-py.wisl.dev/problems/minimum-index-sum-of-two-lists) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/minimum_index_sum_of_two_lists/solution.py) |
| 604 | [Design Compressed String Iterator](https://leetcode-py.wisl.dev/problems/design-compressed-string-iterator) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/design_compressed_string_iterator/solution.py) |
| 606 | [Construct String from Binary Tree](https://leetcode-py.wisl.dev/problems/construct-string-from-binary-tree) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/construct_string_from_binary_tree/solution.py) |
| 609 | [Find Duplicate File in System](https://leetcode-py.wisl.dev/problems/find-duplicate-file-in-system) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/find_duplicate_file_in_system/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) |
| 631 | [Design Excel Sum Formula](https://leetcode-py.wisl.dev/problems/design-excel-sum-formula) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/design_excel_sum_formula/solution.py) |
| 635 | [Design Log Storage System](https://leetcode-py.wisl.dev/problems/design-log-storage-system) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/design_log_storage_system/solution.py) |
| 639 | [Decode Ways II](https://leetcode-py.wisl.dev/problems/decode-ways-ii) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/decode_ways_ii/solution.py) |
| 640 | [Solve the Equation](https://leetcode-py.wisl.dev/problems/solve-the-equation) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/solve_the_equation/solution.py) |
| 642 | [Design Search Autocomplete System](https://leetcode-py.wisl.dev/problems/design-search-autocomplete-system) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/design_search_autocomplete_system/solution.py) |
| 647 | [Palindromic Substrings](https://leetcode-py.wisl.dev/problems/palindromic-substrings) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/palindromic_substrings/solution.py) |
| 648 | [Replace Words](https://leetcode-py.wisl.dev/problems/replace-words) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/replace_words/solution.py) |
| 649 | [Dota2 Senate](https://leetcode-py.wisl.dev/problems/dota2-senate) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/dota2_senate/solution.py) |
| 657 | [Robot Return to Origin](https://leetcode-py.wisl.dev/problems/robot-return-to-origin) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/robot_return_to_origin/solution.py) |
| 664 | [Strange Printer](https://leetcode-py.wisl.dev/problems/strange-printer) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/strange_printer/solution.py) |
| 676 | [Implement Magic Dictionary](https://leetcode-py.wisl.dev/problems/implement-magic-dictionary) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/implement_magic_dictionary/solution.py) |
| 677 | [Map Sum Pairs](https://leetcode-py.wisl.dev/problems/map-sum-pairs) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/map_sum_pairs/solution.py) |
| 678 | [Valid Parenthesis String](https://leetcode-py.wisl.dev/problems/valid-parenthesis-string) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/valid_parenthesis_string/solution.py) |
| 680 | [Valid Palindrome II](https://leetcode-py.wisl.dev/problems/valid-palindrome-ii) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/valid_palindrome_ii/solution.py) |
| 681 | [Next Closest Time](https://leetcode-py.wisl.dev/problems/next-closest-time) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/next_closest_time/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) |
| 691 | [Stickers to Spell Word](https://leetcode-py.wisl.dev/problems/stickers-to-spell-word) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/stickers_to_spell_word/solution.py) |
| 692 | [Top K Frequent Words](https://leetcode-py.wisl.dev/problems/top-k-frequent-words) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/top_k_frequent_words/solution.py) |
| 696 | [Count Binary Substrings](https://leetcode-py.wisl.dev/problems/count-binary-substrings) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/count_binary_substrings/solution.py) |
| 709 | [To Lower Case](https://leetcode-py.wisl.dev/problems/to-lower-case) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/to_lower_case/solution.py) |
| 712 | [Minimum ASCII Delete Sum for Two Strings](https://leetcode-py.wisl.dev/problems/minimum-ascii-delete-sum-for-two-strings) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/minimum_ascii_delete_sum_for_two_strings/solution.py) |
| 720 | [Longest Word in Dictionary](https://leetcode-py.wisl.dev/problems/longest-word-in-dictionary) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/longest_word_in_dictionary/solution.py) |
| 721 | [Accounts Merge](https://leetcode-py.wisl.dev/problems/accounts-merge) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/accounts_merge/solution.py) |
| 722 | [Remove Comments](https://leetcode-py.wisl.dev/problems/remove-comments) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/remove_comments/solution.py) |
| 726 | [Number of Atoms](https://leetcode-py.wisl.dev/problems/number-of-atoms) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/number_of_atoms/solution.py) |
| 727 | [Minimum Window Subsequence](https://leetcode-py.wisl.dev/problems/minimum-window-subsequence) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/minimum_window_subsequence/solution.py) |
| 730 | [Count Different Palindromic Subsequences](https://leetcode-py.wisl.dev/problems/count-palindromic-subsequences) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/count_palindromic_subsequences/solution.py) |
| 734 | [Sentence Similarity](https://leetcode-py.wisl.dev/problems/sentence-similarity) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/sentence_similarity/solution.py) |
| 736 | [Parse Lisp Expression](https://leetcode-py.wisl.dev/problems/parse-lisp-expression) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/parse_lisp_expression/solution.py) |
| 737 | [Sentence Similarity II](https://leetcode-py.wisl.dev/problems/sentence-similarity-ii) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/sentence_similarity_ii/solution.py) |
| 745 | [Prefix and Suffix Search](https://leetcode-py.wisl.dev/problems/prefix-and-suffix-search) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/prefix_and_suffix_search/solution.py) |
| 748 | [Shortest Completing Word](https://leetcode-py.wisl.dev/problems/shortest-completing-word) | Easy | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/shortest_completing_word/solution.py) |
| 751 | [IP to CIDR](https://leetcode-py.wisl.dev/problems/ip-to-cidr) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/ip_to_cidr/solution.py) |
| 752 | [Open the Lock](https://leetcode-py.wisl.dev/problems/open-the-lock) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/open_the_lock/solution.py) |
| 753 | [Cracking the Safe](https://leetcode-py.wisl.dev/problems/cracking-the-safe) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/cracking_the_safe/solution.py) |
| 756 | [Pyramid Transition Matrix](https://leetcode-py.wisl.dev/problems/pyramid-transition) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/pyramid_transition/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) |
| 761 | [Special Binary String](https://leetcode-py.wisl.dev/problems/special-binary-string) | Hard | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/special_binary_string/solution.py) |
| 763 | [Partition Labels](https://leetcode-py.wisl.dev/problems/partition-labels) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/partition_labels/solution.py) |
| 767 | [Reorganize String](https://leetcode-py.wisl.dev/problems/reorganize-string) | Medium | [solution.py](https://github.com/wislertt/leetcode-py/blob/main/leetcode/reorganize_string/solution.py) |

Pages: 1, [2](https://leetcode-py.wisl.dev/catalog/topics/string-2)


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