leetcode-py-sdk 0.46.0__tar.gz → 0.47.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/PKG-INFO +1 -1
  2. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/pyproject.toml +2 -2
  3. leetcode_py_sdk-0.47.0/src/leetcode_py/cli/resources/leetcode/json/problems/longest_common_prefix.json +91 -0
  4. leetcode_py_sdk-0.47.0/src/leetcode_py/cli/resources/leetcode/json/problems/longest_valid_parentheses.json +94 -0
  5. leetcode_py_sdk-0.47.0/src/leetcode_py/cli/resources/leetcode/json/problems/palindrome_number.json +94 -0
  6. leetcode_py_sdk-0.47.0/src/leetcode_py/cli/resources/leetcode/json/problems/roman_to_integer.json +94 -0
  7. leetcode_py_sdk-0.47.0/src/leetcode_py/cli/resources/leetcode/json/problems/three_sum_closest.json +91 -0
  8. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/tags.json5 +5 -0
  9. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/README.md +0 -0
  10. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/__init__.py +0 -0
  11. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/__init__.py +0 -0
  12. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/commands/__init__.py +0 -0
  13. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/commands/gen.py +0 -0
  14. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/commands/list.py +0 -0
  15. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/commands/scrape.py +0 -0
  16. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/main.py +0 -0
  17. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/cookiecutter.json +0 -0
  18. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/accounts_merge.json +0 -0
  19. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/add_binary.json +0 -0
  20. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/add_two_numbers.json +0 -0
  21. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/alien_dictionary.json +0 -0
  22. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/balanced_binary_tree.json +0 -0
  23. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/basic_calculator.json +0 -0
  24. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/best_time_to_buy_and_sell_stock.json +0 -0
  25. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/best_time_to_buy_and_sell_stock_with_cooldown.json +0 -0
  26. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_search.json +0 -0
  27. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_tree_inorder_traversal.json +0 -0
  28. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_tree_level_order_traversal.json +0 -0
  29. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_tree_maximum_path_sum.json +0 -0
  30. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_tree_postorder_traversal.json +0 -0
  31. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_tree_preorder_traversal.json +0 -0
  32. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_tree_right_side_view.json +0 -0
  33. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/burst_balloons.json +0 -0
  34. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/car_fleet.json +0 -0
  35. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/cheapest_flights_within_k_stops.json +0 -0
  36. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/climbing_stairs.json +0 -0
  37. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/clone_graph.json +0 -0
  38. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/coin_change.json +0 -0
  39. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/coin_change_ii.json +0 -0
  40. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/combination_sum.json +0 -0
  41. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/combination_sum_ii.json +0 -0
  42. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/construct_binary_tree_from_preorder_and_inorder_traversal.json +0 -0
  43. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/container_with_most_water.json +0 -0
  44. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/contains_duplicate.json +0 -0
  45. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/contiguous_array.json +0 -0
  46. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/copy_list_with_random_pointer.json +0 -0
  47. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/count_good_nodes_in_binary_tree.json +0 -0
  48. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/counting_bits.json +0 -0
  49. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/course_schedule.json +0 -0
  50. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/course_schedule_ii.json +0 -0
  51. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/daily_temperatures.json +0 -0
  52. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/decode_string.json +0 -0
  53. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/decode_ways.json +0 -0
  54. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/design_add_and_search_words_data_structure.json +0 -0
  55. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/design_in_memory_file_system.json +0 -0
  56. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/design_twitter.json +0 -0
  57. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/detect_squares.json +0 -0
  58. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/diagonal_traverse.json +0 -0
  59. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/diameter_of_binary_tree.json +0 -0
  60. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/distinct_subsequences.json +0 -0
  61. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/edit_distance.json +0 -0
  62. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/encode_and_decode_strings.json +0 -0
  63. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/evaluate_reverse_polish_notation.json +0 -0
  64. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/find_all_anagrams_in_a_string.json +0 -0
  65. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/find_first_and_last_position_of_element_in_sorted_array.json +0 -0
  66. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/find_k_closest_elements.json +0 -0
  67. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/find_median_from_data_stream.json +0 -0
  68. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/find_minimum_in_rotated_sorted_array.json +0 -0
  69. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/find_the_duplicate_number.json +0 -0
  70. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/first_bad_version.json +0 -0
  71. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/first_missing_positive.json +0 -0
  72. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/flood_fill.json +0 -0
  73. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/gas_station.json +0 -0
  74. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/generate_parentheses.json +0 -0
  75. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/graph_valid_tree.json +0 -0
  76. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/group_anagrams.json +0 -0
  77. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/hand_of_straights.json +0 -0
  78. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/happy_number.json +0 -0
  79. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/house_robber.json +0 -0
  80. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/house_robber_ii.json +0 -0
  81. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/implement_queue_using_stacks.json +0 -0
  82. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/implement_trie_prefix_tree.json +0 -0
  83. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/insert_interval.json +0 -0
  84. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/interleaving_string.json +0 -0
  85. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/invert_binary_tree.json +0 -0
  86. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/is_graph_bipartite.json +0 -0
  87. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/is_subsequence.json +0 -0
  88. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/jump_game.json +0 -0
  89. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/jump_game_ii.json +0 -0
  90. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/k_closest_points_to_origin.json +0 -0
  91. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/koko_eating_bananas.json +0 -0
  92. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/kth_largest_element_in_a_stream.json +0 -0
  93. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/kth_largest_element_in_an_array.json +0 -0
  94. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/kth_smallest_element_in_a_bst.json +0 -0
  95. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/largest_rectangle_in_histogram.json +0 -0
  96. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/last_stone_weight.json +0 -0
  97. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/letter_combinations_of_a_phone_number.json +0 -0
  98. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/linked_list_cycle.json +0 -0
  99. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/linked_list_cycle_ii.json +0 -0
  100. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_common_subsequence.json +0 -0
  101. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_consecutive_sequence.json +0 -0
  102. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_increasing_path_in_a_matrix.json +0 -0
  103. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_increasing_subsequence.json +0 -0
  104. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_palindrome.json +0 -0
  105. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_palindromic_substring.json +0 -0
  106. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_repeating_character_replacement.json +0 -0
  107. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_substring_without_repeating_characters.json +0 -0
  108. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/lowest_common_ancestor_of_a_binary_search_tree.json +0 -0
  109. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/lowest_common_ancestor_of_a_binary_tree.json +0 -0
  110. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/lru_cache.json +0 -0
  111. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/majority_element.json +0 -0
  112. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/max_area_of_island.json +0 -0
  113. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/max_points_on_a_line.json +0 -0
  114. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/maximum_depth_of_binary_tree.json +0 -0
  115. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/maximum_product_subarray.json +0 -0
  116. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/maximum_profit_in_job_scheduling.json +0 -0
  117. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/maximum_subarray.json +0 -0
  118. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/maximum_width_of_binary_tree.json +0 -0
  119. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/median_of_two_sorted_arrays.json +0 -0
  120. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/meeting_rooms.json +0 -0
  121. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/meeting_rooms_ii.json +0 -0
  122. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/merge_intervals.json +0 -0
  123. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/merge_k_sorted_lists.json +0 -0
  124. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/merge_triplets_to_form_target_triplet.json +0 -0
  125. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/merge_two_sorted_lists.json +0 -0
  126. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/middle_of_the_linked_list.json +0 -0
  127. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/min_cost_climbing_stairs.json +0 -0
  128. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/min_cost_to_connect_all_points.json +0 -0
  129. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/min_stack.json +0 -0
  130. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/minimum_height_trees.json +0 -0
  131. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/minimum_interval_to_include_each_query.json +0 -0
  132. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/minimum_path_sum.json +0 -0
  133. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/minimum_window_substring.json +0 -0
  134. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/missing_number.json +0 -0
  135. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/multiply_strings.json +0 -0
  136. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/my_calendar_i.json +0 -0
  137. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/n_queens.json +0 -0
  138. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/network_delay_time.json +0 -0
  139. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/next_permutation.json +0 -0
  140. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/non_overlapping_intervals.json +0 -0
  141. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/number_of_1_bits.json +0 -0
  142. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/number_of_connected_components_in_an_undirected_graph.json +0 -0
  143. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/number_of_islands.json +0 -0
  144. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/number_of_provinces.json +0 -0
  145. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/odd_even_linked_list.json +0 -0
  146. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/pacific_atlantic_water_flow.json +0 -0
  147. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/palindrome_partitioning.json +0 -0
  148. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/palindromic_substrings.json +0 -0
  149. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/partition_equal_subset_sum.json +0 -0
  150. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/partition_labels.json +0 -0
  151. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/path_sum_ii.json +0 -0
  152. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/path_sum_iii.json +0 -0
  153. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/permutation_in_string.json +0 -0
  154. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/permutations.json +0 -0
  155. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/plus_one.json +0 -0
  156. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/powx_n.json +0 -0
  157. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/product_of_array_except_self.json +0 -0
  158. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/ransom_note.json +0 -0
  159. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/reconstruct_itinerary.json +0 -0
  160. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/redundant_connection.json +0 -0
  161. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/regular_expression_matching.json +0 -0
  162. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/remove_nth_node_from_end_of_list.json +0 -0
  163. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/reorder_list.json +0 -0
  164. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/reverse_bits.json +0 -0
  165. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/reverse_integer.json +0 -0
  166. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/reverse_linked_list.json +0 -0
  167. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/reverse_linked_list_ii.json +0 -0
  168. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/reverse_nodes_in_k_group.json +0 -0
  169. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/reverse_words_in_a_string.json +0 -0
  170. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/rotate_array.json +0 -0
  171. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/rotate_image.json +0 -0
  172. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/rotting_oranges.json +0 -0
  173. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/same_tree.json +0 -0
  174. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/search_a_2d_matrix.json +0 -0
  175. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/search_in_rotated_sorted_array.json +0 -0
  176. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/serialize_and_deserialize_binary_tree.json +0 -0
  177. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/set_matrix_zeroes.json +0 -0
  178. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/single_number.json +0 -0
  179. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/single_number_iii.json +0 -0
  180. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/sliding_window_maximum.json +0 -0
  181. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/sort_colors.json +0 -0
  182. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/spiral_matrix.json +0 -0
  183. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/string_to_integer_atoi.json +0 -0
  184. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/subarray_sum_equals_k.json +0 -0
  185. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/subsets.json +0 -0
  186. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/subsets_ii.json +0 -0
  187. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/subtree_of_another_tree.json +0 -0
  188. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/sum_of_two_integers.json +0 -0
  189. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/surrounded_regions.json +0 -0
  190. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/swap_nodes_in_pairs.json +0 -0
  191. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/swim_in_rising_water.json +0 -0
  192. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/target_sum.json +0 -0
  193. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/task_scheduler.json +0 -0
  194. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/three_sum.json +0 -0
  195. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/time_based_key_value_store.json +0 -0
  196. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/top_k_frequent_elements.json +0 -0
  197. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/top_k_frequent_words.json +0 -0
  198. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/trapping_rain_water.json +0 -0
  199. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/two_sum.json +0 -0
  200. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/two_sum_ii_input_array_is_sorted.json +0 -0
  201. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/unique_paths.json +0 -0
  202. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/valid_anagram.json +0 -0
  203. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/valid_palindrome.json +0 -0
  204. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/valid_parentheses.json +0 -0
  205. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/valid_parenthesis_string.json +0 -0
  206. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/valid_sudoku.json +0 -0
  207. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/validate_binary_search_tree.json +0 -0
  208. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/walls_and_gates.json +0 -0
  209. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/word_break.json +0 -0
  210. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/word_ladder.json +0 -0
  211. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/word_search.json +0 -0
  212. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/word_search_ii.json +0 -0
  213. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/json/problems/zero_one_matrix.json +0 -0
  214. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/{{cookiecutter.problem_name}}/README.md +0 -0
  215. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/{{cookiecutter.problem_name}}/__init__.py +0 -0
  216. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/{{cookiecutter.problem_name}}/helpers.py +0 -0
  217. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/{{cookiecutter.problem_name}}/playground.ipynb +0 -0
  218. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/{{cookiecutter.problem_name}}/solution.py +0 -0
  219. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/resources/leetcode/{{cookiecutter.problem_name}}/test_solution.py +0 -0
  220. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/utils/__init__.py +0 -0
  221. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/utils/problem_finder.py +0 -0
  222. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/utils/resources.py +0 -0
  223. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/cli/utils/tag_helpers.py +0 -0
  224. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/data_structures/__init__.py +0 -0
  225. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/data_structures/_utils.py +0 -0
  226. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/data_structures/dict_tree.py +0 -0
  227. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/data_structures/doubly_list_node.py +0 -0
  228. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/data_structures/graph_node.py +0 -0
  229. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/data_structures/list_node.py +0 -0
  230. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/data_structures/tree_node.py +0 -0
  231. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/py.typed +0 -0
  232. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/tools/__init__.py +0 -0
  233. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/tools/check_test_cases.py +0 -0
  234. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/tools/generator.py +0 -0
  235. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/tools/logged_test.py +0 -0
  236. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/tools/parser.py +0 -0
  237. {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-0.47.0}/src/leetcode_py/tools/scraper.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: leetcode-py-sdk
3
- Version: 0.46.0
3
+ Version: 0.47.0
4
4
  Summary: Modern Python LeetCode practice environment with automated problem generation, beautiful data structure visualizations, and comprehensive testing
5
5
  Keywords: algorithms,coding-practice,data-structures,interview-prep,leetcode
6
6
  Author: Wisaroot Lertthaweedech
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "leetcode-py-sdk"
3
- version = "0.46.0" # use git tag instead
3
+ version = "0.47.0" # use git tag instead
4
4
  description = "Modern Python LeetCode practice environment with automated problem generation, beautiful data structure visualizations, and comprehensive testing"
5
5
  authors = [
6
6
  {name = "Wisaroot Lertthaweedech", email = "l.wisaroot@gmail.com"}
@@ -46,7 +46,7 @@ Repository = "https://github.com/wislertt/leetcode-py"
46
46
 
47
47
  [dependency-groups]
48
48
  dev = [
49
- "bakefile[lib]>=0.0.8",
49
+ "bakefile[lib]>=0.0.57a0",
50
50
  "deptry>=0.24.0",
51
51
  "ipykernel>=7.0.0",
52
52
  "jupytext>=1.16.6",
@@ -0,0 +1,91 @@
1
+ {
2
+ "problem_name": "longest_common_prefix",
3
+ "solution_class_name": "Solution",
4
+ "problem_number": "14",
5
+ "problem_title": "Longest Common Prefix",
6
+ "difficulty": "Easy",
7
+ "topics": "Array, String, Trie",
8
+ "_tags": {
9
+ "list": ["grind"]
10
+ },
11
+ "readme_description": "Write a function to find the longest common prefix string amongst an array of strings.\n\nIf there is no common prefix, return an empty string `\"\"`.",
12
+ "_readme_examples": {
13
+ "list": [
14
+ {
15
+ "content": "```\nInput: strs = [\"flower\",\"flow\",\"flight\"]\nOutput: \"fl\"\n```"
16
+ },
17
+ {
18
+ "content": "```\nInput: strs = [\"dog\",\"racecar\",\"car\"]\nOutput: \"\"\nExplanation: There is no common prefix among the input strings.\n```"
19
+ }
20
+ ]
21
+ },
22
+ "readme_constraints": "- 1 <= strs.length <= 200\n- 0 <= strs[i].length <= 200\n- `strs[i]` consists of only lowercase English letters if it is non-empty.",
23
+ "readme_additional": "",
24
+ "helpers_imports": "",
25
+ "helpers_content": "",
26
+ "helpers_run_name": "longest_common_prefix",
27
+ "helpers_run_signature": "(solution_class: type, strs: list[str])",
28
+ "helpers_run_body": " implementation = solution_class()\n return implementation.longest_common_prefix(strs)",
29
+ "helpers_assert_name": "longest_common_prefix",
30
+ "helpers_assert_signature": "(result: str, expected: str) -> bool",
31
+ "helpers_assert_body": " assert result == expected\n return True",
32
+ "solution_imports": "",
33
+ "solution_contents": "",
34
+ "solution_class_content": "",
35
+ "test_imports": "import pytest\nfrom leetcode_py import logged_test\nfrom .helpers import assert_longest_common_prefix, run_longest_common_prefix\nfrom .solution import Solution",
36
+ "test_content": "",
37
+ "test_class_name": "LongestCommonPrefix",
38
+ "test_class_content": " def setup_method(self):\n self.solution = Solution()",
39
+ "_solution_methods": {
40
+ "list": [
41
+ {
42
+ "name": "longest_common_prefix",
43
+ "signature": "(self, strs: list[str]) -> str",
44
+ "body": " # TODO: Implement longest_common_prefix\n return ''"
45
+ }
46
+ ]
47
+ },
48
+ "_test_helper_methods": {
49
+ "list": [
50
+ {
51
+ "name": "setup_method",
52
+ "parameters": "",
53
+ "body": "self.solution = Solution()"
54
+ }
55
+ ]
56
+ },
57
+ "_test_methods": {
58
+ "list": [
59
+ {
60
+ "name": "test_longest_common_prefix",
61
+ "signature": "(self, strs: list[str], expected: str)",
62
+ "parametrize": "strs, expected",
63
+ "test_cases": {
64
+ "list": [
65
+ "(['flower', 'flow', 'flight'], 'fl')",
66
+ "(['dog', 'racecar', 'car'], '')",
67
+ "([''], '')",
68
+ "(['a'], 'a')",
69
+ "(['ab', 'a'], 'a')",
70
+ "(['aaa', 'aa', 'aaa'], 'aa')",
71
+ "(['abc', 'abc', 'abc'], 'abc')",
72
+ "(['abc', 'def', 'ghi'], '')",
73
+ "(['interspecies', 'interstellar', 'interstate'], 'inters')",
74
+ "(['', ''], '')",
75
+ "(['ab', 'ab', 'ab'], 'ab')",
76
+ "(['a', 'a', 'a'], 'a')",
77
+ "(['prefix', 'pre', 'pref'], 'pre')",
78
+ "(['xyz', 'xyz', 'x'], 'x')",
79
+ "(['abca', 'abcab', 'abcabc'], 'abca')",
80
+ "(['cir', 'car'], 'c')"
81
+ ]
82
+ },
83
+ "body": " result = run_longest_common_prefix(Solution, strs)\n assert_longest_common_prefix(result, expected)"
84
+ }
85
+ ]
86
+ },
87
+ "playground_imports": "from helpers import run_longest_common_prefix, assert_longest_common_prefix\nfrom solution import Solution",
88
+ "playground_setup": "# Example test case\nstrs = ['flower', 'flow', 'flight']\nexpected = 'fl'",
89
+ "playground_run": "result = run_longest_common_prefix(Solution, strs)\nresult",
90
+ "playground_assert": "assert_longest_common_prefix(result, expected)"
91
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "problem_name": "longest_valid_parentheses",
3
+ "solution_class_name": "Solution",
4
+ "problem_number": "32",
5
+ "problem_title": "Longest Valid Parentheses",
6
+ "difficulty": "Hard",
7
+ "topics": "String, Dynamic Programming, Stack",
8
+ "_tags": {
9
+ "list": ["grind"]
10
+ },
11
+ "readme_description": "Given a string containing just the characters `'('` and `')'`, return the length of the longest valid (well-formed) parentheses *substring*.",
12
+ "_readme_examples": {
13
+ "list": [
14
+ {
15
+ "content": "```\nInput: s = \"(()\"\nOutput: 2\nExplanation: The longest valid parentheses substring is \"()\".\n```"
16
+ },
17
+ {
18
+ "content": "```\nInput: s = \")()())\"\nOutput: 4\nExplanation: The longest valid parentheses substring is \"()()\".\n```"
19
+ },
20
+ {
21
+ "content": "```\nInput: s = \"\"\nOutput: 0\n```"
22
+ }
23
+ ]
24
+ },
25
+ "readme_constraints": "- 0 <= s.length <= 3 * 10^4\n- `s[i]` is `'('`, or `')'`.",
26
+ "readme_additional": "",
27
+ "helpers_imports": "",
28
+ "helpers_content": "",
29
+ "helpers_run_name": "longest_valid_parentheses",
30
+ "helpers_run_signature": "(solution_class: type, s: str)",
31
+ "helpers_run_body": " implementation = solution_class()\n return implementation.longest_valid_parentheses(s)",
32
+ "helpers_assert_name": "longest_valid_parentheses",
33
+ "helpers_assert_signature": "(result: int, expected: int) -> bool",
34
+ "helpers_assert_body": " assert result == expected\n return True",
35
+ "solution_imports": "",
36
+ "solution_contents": "",
37
+ "solution_class_content": "",
38
+ "test_imports": "import pytest\nfrom leetcode_py import logged_test\nfrom .helpers import assert_longest_valid_parentheses, run_longest_valid_parentheses\nfrom .solution import Solution",
39
+ "test_content": "",
40
+ "test_class_name": "LongestValidParentheses",
41
+ "test_class_content": " def setup_method(self):\n self.solution = Solution()",
42
+ "_solution_methods": {
43
+ "list": [
44
+ {
45
+ "name": "longest_valid_parentheses",
46
+ "signature": "(self, s: str) -> int",
47
+ "body": " # TODO: Implement longest_valid_parentheses\n return 0"
48
+ }
49
+ ]
50
+ },
51
+ "_test_helper_methods": {
52
+ "list": [
53
+ {
54
+ "name": "setup_method",
55
+ "parameters": "",
56
+ "body": "self.solution = Solution()"
57
+ }
58
+ ]
59
+ },
60
+ "_test_methods": {
61
+ "list": [
62
+ {
63
+ "name": "test_longest_valid_parentheses",
64
+ "signature": "(self, s: str, expected: int)",
65
+ "parametrize": "s, expected",
66
+ "test_cases": {
67
+ "list": [
68
+ "('(()', 2)",
69
+ "(')()())', 4)",
70
+ "('', 0)",
71
+ "('(', 0)",
72
+ "(')', 0)",
73
+ "('()', 2)",
74
+ "('()()', 4)",
75
+ "('(())', 4)",
76
+ "('(()())', 6)",
77
+ "('(()()', 4)",
78
+ "(')(())', 4)",
79
+ "('()(()', 2)",
80
+ "('(((((', 0)",
81
+ "(')))))', 0)",
82
+ "('((()))', 6)",
83
+ "('(())(())', 8)"
84
+ ]
85
+ },
86
+ "body": " result = run_longest_valid_parentheses(Solution, s)\n assert_longest_valid_parentheses(result, expected)"
87
+ }
88
+ ]
89
+ },
90
+ "playground_imports": "from helpers import run_longest_valid_parentheses, assert_longest_valid_parentheses\nfrom solution import Solution",
91
+ "playground_setup": "# Example test case\ns = ')()())'\nexpected = 4",
92
+ "playground_run": "result = run_longest_valid_parentheses(Solution, s)\nresult",
93
+ "playground_assert": "assert_longest_valid_parentheses(result, expected)"
94
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "problem_name": "palindrome_number",
3
+ "solution_class_name": "Solution",
4
+ "problem_number": "9",
5
+ "problem_title": "Palindrome Number",
6
+ "difficulty": "Easy",
7
+ "topics": "Math",
8
+ "_tags": {
9
+ "list": ["grind"]
10
+ },
11
+ "readme_description": "Given an integer `x`, return `true` if `x` is a **palindrome**, and `false` otherwise.",
12
+ "_readme_examples": {
13
+ "list": [
14
+ {
15
+ "content": "```\nInput: x = 121\nOutput: true\nExplanation: 121 reads as 121 from left to right and from right to left.\n```"
16
+ },
17
+ {
18
+ "content": "```\nInput: x = -121\nOutput: false\nExplanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.\n```"
19
+ },
20
+ {
21
+ "content": "```\nInput: x = 10\nOutput: false\nExplanation: Reads 01 from right to left. Therefore it is not a palindrome.\n```"
22
+ }
23
+ ]
24
+ },
25
+ "readme_constraints": "- -2^31 <= x <= 2^31 - 1",
26
+ "readme_additional": "**Follow up:** Could you solve it without converting the integer to a string?",
27
+ "helpers_imports": "",
28
+ "helpers_content": "",
29
+ "helpers_run_name": "is_palindrome",
30
+ "helpers_run_signature": "(solution_class: type, x: int)",
31
+ "helpers_run_body": " implementation = solution_class()\n return implementation.is_palindrome(x)",
32
+ "helpers_assert_name": "is_palindrome",
33
+ "helpers_assert_signature": "(result: bool, expected: bool) -> bool",
34
+ "helpers_assert_body": " assert result == expected\n return True",
35
+ "solution_imports": "",
36
+ "solution_contents": "",
37
+ "solution_class_content": "",
38
+ "test_imports": "import pytest\nfrom leetcode_py import logged_test\nfrom .helpers import assert_is_palindrome, run_is_palindrome\nfrom .solution import Solution",
39
+ "test_content": "",
40
+ "test_class_name": "PalindromeNumber",
41
+ "test_class_content": " def setup_method(self):\n self.solution = Solution()",
42
+ "_solution_methods": {
43
+ "list": [
44
+ {
45
+ "name": "is_palindrome",
46
+ "signature": "(self, x: int) -> bool",
47
+ "body": " # TODO: Implement is_palindrome\n return False"
48
+ }
49
+ ]
50
+ },
51
+ "_test_helper_methods": {
52
+ "list": [
53
+ {
54
+ "name": "setup_method",
55
+ "parameters": "",
56
+ "body": "self.solution = Solution()"
57
+ }
58
+ ]
59
+ },
60
+ "_test_methods": {
61
+ "list": [
62
+ {
63
+ "name": "test_is_palindrome",
64
+ "signature": "(self, x: int, expected: bool)",
65
+ "parametrize": "x, expected",
66
+ "test_cases": {
67
+ "list": [
68
+ "(121, True)",
69
+ "(-121, False)",
70
+ "(10, False)",
71
+ "(0, True)",
72
+ "(1, True)",
73
+ "(11, True)",
74
+ "(12, False)",
75
+ "(1001, True)",
76
+ "(12321, True)",
77
+ "(12345, False)",
78
+ "(-1, False)",
79
+ "(1000021, False)",
80
+ "(1234321, True)",
81
+ "(2147447412, True)",
82
+ "(2147483647, False)",
83
+ "(100, False)"
84
+ ]
85
+ },
86
+ "body": " result = run_is_palindrome(Solution, x)\n assert_is_palindrome(result, expected)"
87
+ }
88
+ ]
89
+ },
90
+ "playground_imports": "from helpers import run_is_palindrome, assert_is_palindrome\nfrom solution import Solution",
91
+ "playground_setup": "# Example test case\nx = 121\nexpected = True",
92
+ "playground_run": "result = run_is_palindrome(Solution, x)\nresult",
93
+ "playground_assert": "assert_is_palindrome(result, expected)"
94
+ }
@@ -0,0 +1,94 @@
1
+ {
2
+ "problem_name": "roman_to_integer",
3
+ "solution_class_name": "Solution",
4
+ "problem_number": "13",
5
+ "problem_title": "Roman to Integer",
6
+ "difficulty": "Easy",
7
+ "topics": "Hash Table, Math, String",
8
+ "_tags": {
9
+ "list": ["grind"]
10
+ },
11
+ "readme_description": "Roman numerals are represented by seven different symbols: `I`, `V`, `X`, `L`, `C`, `D` and `M`.\n\n**Symbol** **Value**\nI 1\nV 5\nX 10\nL 50\nC 100\nD 500\nM 1000\n\nFor example, `2` is written as `II` in Roman numeral, just two ones added together. `12` is written as `XII`, which is simply `X + II`. The number `27` is written as `XXVII`, which is `XX + V + II`.\n\nRoman numerals are usually written largest to smallest from left to right. However, the numeral for four is not `IIII`. Instead, the number four is written as `IV`. Because the one is before the five we subtract it making four. The same principle applies to the number nine, which is written as `IX`. There are six instances where subtraction is used:\n\n- `I` can be placed before `V` (5) and `X` (10) to make 4 and 9.\n- `X` can be placed before `L` (50) and `C` (100) to make 40 and 90.\n- `C` can be placed before `D` (500) and `M` (1000) to make 400 and 900.\n\nGiven a roman numeral, convert it to an integer.",
12
+ "_readme_examples": {
13
+ "list": [
14
+ {
15
+ "content": "```\nInput: s = \"III\"\nOutput: 3\nExplanation: III = 3.\n```"
16
+ },
17
+ {
18
+ "content": "```\nInput: s = \"LVIII\"\nOutput: 58\nExplanation: L = 50, V= 5, III = 3.\n```"
19
+ },
20
+ {
21
+ "content": "```\nInput: s = \"MCMXCIV\"\nOutput: 1994\nExplanation: M = 1000, CM = 900, XC = 90 and IV = 4.\n```"
22
+ }
23
+ ]
24
+ },
25
+ "readme_constraints": "- 1 <= s.length <= 15\n- `s` contains only the characters (`'I'`, `'V'`, `'X'`, `'L'`, `'C'`, `'D'`, `'M'`).\n- It is guaranteed that `s` is a valid roman numeral in the range `[1, 3999]`.",
26
+ "readme_additional": "",
27
+ "helpers_imports": "",
28
+ "helpers_content": "",
29
+ "helpers_run_name": "roman_to_int",
30
+ "helpers_run_signature": "(solution_class: type, s: str)",
31
+ "helpers_run_body": " implementation = solution_class()\n return implementation.roman_to_int(s)",
32
+ "helpers_assert_name": "roman_to_int",
33
+ "helpers_assert_signature": "(result: int, expected: int) -> bool",
34
+ "helpers_assert_body": " assert result == expected\n return True",
35
+ "solution_imports": "",
36
+ "solution_contents": "",
37
+ "solution_class_content": "",
38
+ "test_imports": "import pytest\nfrom leetcode_py import logged_test\nfrom .helpers import assert_roman_to_int, run_roman_to_int\nfrom .solution import Solution",
39
+ "test_content": "",
40
+ "test_class_name": "RomanToInteger",
41
+ "test_class_content": " def setup_method(self):\n self.solution = Solution()",
42
+ "_solution_methods": {
43
+ "list": [
44
+ {
45
+ "name": "roman_to_int",
46
+ "signature": "(self, s: str) -> int",
47
+ "body": " # TODO: Implement roman_to_int\n return 0"
48
+ }
49
+ ]
50
+ },
51
+ "_test_helper_methods": {
52
+ "list": [
53
+ {
54
+ "name": "setup_method",
55
+ "parameters": "",
56
+ "body": "self.solution = Solution()"
57
+ }
58
+ ]
59
+ },
60
+ "_test_methods": {
61
+ "list": [
62
+ {
63
+ "name": "test_roman_to_int",
64
+ "signature": "(self, s: str, expected: int)",
65
+ "parametrize": "s, expected",
66
+ "test_cases": {
67
+ "list": [
68
+ "('III', 3)",
69
+ "('LVIII', 58)",
70
+ "('MCMXCIV', 1994)",
71
+ "('I', 1)",
72
+ "('V', 5)",
73
+ "('X', 10)",
74
+ "('IV', 4)",
75
+ "('IX', 9)",
76
+ "('XL', 40)",
77
+ "('XC', 90)",
78
+ "('CD', 400)",
79
+ "('CM', 900)",
80
+ "('MMMCMXCIX', 3999)",
81
+ "('MMMDCCCLXXXVIII', 3888)",
82
+ "('DCXXI', 621)",
83
+ "('MCMXC', 1990)"
84
+ ]
85
+ },
86
+ "body": " result = run_roman_to_int(Solution, s)\n assert_roman_to_int(result, expected)"
87
+ }
88
+ ]
89
+ },
90
+ "playground_imports": "from helpers import run_roman_to_int, assert_roman_to_int\nfrom solution import Solution",
91
+ "playground_setup": "# Example test case\ns = 'MCMXCIV'\nexpected = 1994",
92
+ "playground_run": "result = run_roman_to_int(Solution, s)\nresult",
93
+ "playground_assert": "assert_roman_to_int(result, expected)"
94
+ }
@@ -0,0 +1,91 @@
1
+ {
2
+ "problem_name": "three_sum_closest",
3
+ "solution_class_name": "Solution",
4
+ "problem_number": "16",
5
+ "problem_title": "3Sum Closest",
6
+ "difficulty": "Medium",
7
+ "topics": "Array, Two Pointers, Sorting",
8
+ "_tags": {
9
+ "list": ["grind"]
10
+ },
11
+ "readme_description": "Given an integer array `nums` of length `n` and an integer `target`, find three integers at **distinct indices** in `nums` such that the sum is closest to `target`.\n\nReturn *the sum of the three integers*.\n\nYou may assume that each input would have exactly one solution.",
12
+ "_readme_examples": {
13
+ "list": [
14
+ {
15
+ "content": "```\nInput: nums = [-1,2,1,-4], target = 1\nOutput: 2\nExplanation: The sum that is closest to the target is 2. (-1 + 2 + 1 = 2).\n```"
16
+ },
17
+ {
18
+ "content": "```\nInput: nums = [0,0,0], target = 1\nOutput: 0\nExplanation: The sum that is closest to the target is 0. (0 + 0 + 0 = 0).\n```"
19
+ }
20
+ ]
21
+ },
22
+ "readme_constraints": "- 3 <= nums.length <= 500\n- -1000 <= nums[i] <= 1000\n- -10^4 <= target <= 10^4",
23
+ "readme_additional": "",
24
+ "helpers_imports": "",
25
+ "helpers_content": "",
26
+ "helpers_run_name": "three_sum_closest",
27
+ "helpers_run_signature": "(solution_class: type, nums: list[int], target: int)",
28
+ "helpers_run_body": " implementation = solution_class()\n return implementation.three_sum_closest(nums, target)",
29
+ "helpers_assert_name": "three_sum_closest",
30
+ "helpers_assert_signature": "(result: int, expected: int) -> bool",
31
+ "helpers_assert_body": " assert result == expected\n return True",
32
+ "solution_imports": "",
33
+ "solution_contents": "",
34
+ "solution_class_content": "",
35
+ "test_imports": "import pytest\nfrom leetcode_py import logged_test\nfrom .helpers import assert_three_sum_closest, run_three_sum_closest\nfrom .solution import Solution",
36
+ "test_content": "",
37
+ "test_class_name": "ThreeSumClosest",
38
+ "test_class_content": " def setup_method(self):\n self.solution = Solution()",
39
+ "_solution_methods": {
40
+ "list": [
41
+ {
42
+ "name": "three_sum_closest",
43
+ "signature": "(self, nums: list[int], target: int) -> int",
44
+ "body": " # TODO: Implement three_sum_closest\n return 0"
45
+ }
46
+ ]
47
+ },
48
+ "_test_helper_methods": {
49
+ "list": [
50
+ {
51
+ "name": "setup_method",
52
+ "parameters": "",
53
+ "body": "self.solution = Solution()"
54
+ }
55
+ ]
56
+ },
57
+ "_test_methods": {
58
+ "list": [
59
+ {
60
+ "name": "test_three_sum_closest",
61
+ "signature": "(self, nums: list[int], target: int, expected: int)",
62
+ "parametrize": "nums, target, expected",
63
+ "test_cases": {
64
+ "list": [
65
+ "([-1, 2, 1, -4], 1, 2)",
66
+ "([0, 0, 0], 1, 0)",
67
+ "([1, 1, -1, -1, 3], -1, -1)",
68
+ "([1, 2, 3, 4, 5], 9, 9)",
69
+ "([0, 1, 2], 0, 3)",
70
+ "([0, 1, 2], 3, 3)",
71
+ "([-4, -2, -1, 0, 3, 5], 1, 1)",
72
+ "([1, 2, 5, 10, 11], 12, 13)",
73
+ "([2, 3, 4, 5], 50, 12)",
74
+ "([1, 1, 1], 3, 3)",
75
+ "([100, 200, 300, 400], 200, 600)",
76
+ "([-5, -4, -3, -2, -1], -12, -12)",
77
+ "([5, 5, 5, 5], 10, 15)",
78
+ "([1, 2, 4, 8, 16], 10, 11)",
79
+ "([1, 2, 3], 1, 6)",
80
+ "([-1, 0, 1, 2, -1, -4], 0, 0)"
81
+ ]
82
+ },
83
+ "body": " result = run_three_sum_closest(Solution, nums, target)\n assert_three_sum_closest(result, expected)"
84
+ }
85
+ ]
86
+ },
87
+ "playground_imports": "from helpers import run_three_sum_closest, assert_three_sum_closest\nfrom solution import Solution",
88
+ "playground_setup": "# Example test case\nnums = [-1, 2, 1, -4]\ntarget = 1\nexpected = 2",
89
+ "playground_run": "result = run_three_sum_closest(Solution, nums, target)\nresult",
90
+ "playground_assert": "assert_three_sum_closest(result, expected)"
91
+ }
@@ -95,17 +95,22 @@
95
95
  "gas_station",
96
96
  "group_anagrams",
97
97
  "house_robber",
98
+ "longest_common_prefix",
98
99
  "longest_consecutive_sequence",
99
100
  "longest_increasing_subsequence",
101
+ "longest_valid_parentheses",
100
102
  "maximum_product_subarray",
101
103
  "maximum_width_of_binary_tree",
102
104
  "next_permutation",
103
105
  "odd_even_linked_list",
104
106
  "pacific_atlantic_water_flow",
107
+ "palindrome_number",
105
108
  "path_sum_ii",
106
109
  "remove_nth_node_from_end_of_list",
110
+ "roman_to_integer",
107
111
  "rotate_array",
108
112
  "swap_nodes_in_pairs",
113
+ "three_sum_closest",
109
114
  "top_k_frequent_words",
110
115
  "valid_sudoku",
111
116
  ],