leetcode-py-sdk 1.0.2__tar.gz → 1.0.3__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 (344) hide show
  1. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/PKG-INFO +19 -9
  2. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/README.md +14 -7
  3. leetcode_py_sdk-1.0.3/pyproject.toml +154 -0
  4. leetcode_py_sdk-1.0.2/pyproject.toml → leetcode_py_sdk-1.0.3/pyproject.toml.orig +7 -2
  5. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/main.py +13 -1
  6. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/implement_queue_using_stacks.json +3 -3
  7. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/implement_stack_using_queues.json +3 -3
  8. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/__init__.py +0 -0
  9. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/__init__.py +0 -0
  10. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/commands/__init__.py +0 -0
  11. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/commands/gen.py +0 -0
  12. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/commands/list.py +0 -0
  13. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/commands/scrape.py +0 -0
  14. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/cookiecutter.json +0 -0
  15. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/accounts_merge.json +0 -0
  16. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/add_binary.json +0 -0
  17. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/add_two_numbers.json +0 -0
  18. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/alien_dictionary.json +0 -0
  19. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/all_nodes_distance_k_in_binary_tree.json +0 -0
  20. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/asteroid_collision.json +0 -0
  21. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/backspace_string_compare.json +0 -0
  22. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/balanced_binary_tree.json +0 -0
  23. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/baseball_game.json +0 -0
  24. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/basic_calculator.json +0 -0
  25. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/basic_calculator_ii.json +0 -0
  26. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/best_time_to_buy_and_sell_stock.json +0 -0
  27. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/best_time_to_buy_and_sell_stock_ii.json +0 -0
  28. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/best_time_to_buy_and_sell_stock_with_cooldown.json +0 -0
  29. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_search.json +0 -0
  30. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_tree_inorder_traversal.json +0 -0
  31. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_tree_level_order_traversal.json +0 -0
  32. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_tree_maximum_path_sum.json +0 -0
  33. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_tree_postorder_traversal.json +0 -0
  34. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_tree_preorder_traversal.json +0 -0
  35. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_tree_right_side_view.json +0 -0
  36. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_tree_zigzag_level_order_traversal.json +0 -0
  37. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/bitwise_and_of_numbers_range.json +0 -0
  38. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/boats_to_save_people.json +0 -0
  39. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/build_a_matrix_with_conditions.json +0 -0
  40. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/burst_balloons.json +0 -0
  41. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/bus_routes.json +0 -0
  42. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/candy.json +0 -0
  43. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/capacity_to_ship_packages_within_d_days.json +0 -0
  44. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/car_fleet.json +0 -0
  45. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/car_pooling.json +0 -0
  46. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/cheapest_flights_within_k_stops.json +0 -0
  47. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/climbing_stairs.json +0 -0
  48. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/clone_graph.json +0 -0
  49. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/coin_change.json +0 -0
  50. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/coin_change_ii.json +0 -0
  51. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/combination_sum.json +0 -0
  52. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/combination_sum_ii.json +0 -0
  53. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/combination_sum_iv.json +0 -0
  54. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/combinations.json +0 -0
  55. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/concatenation_of_array.json +0 -0
  56. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/construct_binary_tree_from_preorder_and_inorder_traversal.json +0 -0
  57. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/construct_quad_tree.json +0 -0
  58. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/container_with_most_water.json +0 -0
  59. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/contains_duplicate.json +0 -0
  60. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/contains_duplicate_ii.json +0 -0
  61. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/contiguous_array.json +0 -0
  62. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/convert_sorted_array_to_binary_search_tree.json +0 -0
  63. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/copy_list_with_random_pointer.json +0 -0
  64. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/count_good_nodes_in_binary_tree.json +0 -0
  65. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/counting_bits.json +0 -0
  66. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/course_schedule.json +0 -0
  67. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/course_schedule_ii.json +0 -0
  68. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/course_schedule_iv.json +0 -0
  69. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/daily_temperatures.json +0 -0
  70. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/decode_string.json +0 -0
  71. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/decode_ways.json +0 -0
  72. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/delete_leaves_with_a_given_value.json +0 -0
  73. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/delete_node_in_a_bst.json +0 -0
  74. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/design_add_and_search_words_data_structure.json +0 -0
  75. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/design_circular_queue.json +0 -0
  76. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/design_hash_map.json +0 -0
  77. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/design_hash_set.json +0 -0
  78. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/design_hit_counter.json +0 -0
  79. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/design_in_memory_file_system.json +0 -0
  80. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/design_twitter.json +0 -0
  81. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/detect_squares.json +0 -0
  82. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/diagonal_traverse.json +0 -0
  83. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/diameter_of_binary_tree.json +0 -0
  84. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/distinct_subsequences.json +0 -0
  85. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/dota2_senate.json +0 -0
  86. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/edit_distance.json +0 -0
  87. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/employee_free_time.json +0 -0
  88. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/encode_and_decode_strings.json +0 -0
  89. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/evaluate_division.json +0 -0
  90. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/evaluate_reverse_polish_notation.json +0 -0
  91. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/excel_sheet_column_title.json +0 -0
  92. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/extra_characters_in_a_string.json +0 -0
  93. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/find_all_anagrams_in_a_string.json +0 -0
  94. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/find_critical_and_pseudo_critical_edges_in_minimum_spanning_tree.json +0 -0
  95. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/find_first_and_last_position_of_element_in_sorted_array.json +0 -0
  96. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/find_in_mountain_array.json +0 -0
  97. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/find_k_closest_elements.json +0 -0
  98. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/find_median_from_data_stream.json +0 -0
  99. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/find_minimum_in_rotated_sorted_array.json +0 -0
  100. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/find_the_duplicate_number.json +0 -0
  101. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/find_the_town_judge.json +0 -0
  102. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/first_bad_version.json +0 -0
  103. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/first_missing_positive.json +0 -0
  104. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/flood_fill.json +0 -0
  105. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/four_sum.json +0 -0
  106. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/gas_station.json +0 -0
  107. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/gcd_of_strings.json +0 -0
  108. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/generate_parentheses.json +0 -0
  109. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/graph_valid_tree.json +0 -0
  110. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/greatest_common_divisor_traversal.json +0 -0
  111. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/group_anagrams.json +0 -0
  112. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/guess_number_higher_or_lower.json +0 -0
  113. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/hand_of_straights.json +0 -0
  114. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/happy_number.json +0 -0
  115. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/house_robber.json +0 -0
  116. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/house_robber_ii.json +0 -0
  117. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/house_robber_iii.json +0 -0
  118. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/implement_trie_prefix_tree.json +0 -0
  119. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/inorder_successor_in_bst.json +0 -0
  120. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/insert_delete_getrandom_o1.json +0 -0
  121. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/insert_greatest_common_divisors_in_linked_list.json +0 -0
  122. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/insert_interval.json +0 -0
  123. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/insert_into_a_binary_search_tree.json +0 -0
  124. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/integer_break.json +0 -0
  125. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/interleaving_string.json +0 -0
  126. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/invert_binary_tree.json +0 -0
  127. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/ipo.json +0 -0
  128. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/is_graph_bipartite.json +0 -0
  129. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/is_subsequence.json +0 -0
  130. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/island_perimeter.json +0 -0
  131. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/jump_game.json +0 -0
  132. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/jump_game_ii.json +0 -0
  133. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/jump_game_vii.json +0 -0
  134. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/k_closest_points_to_origin.json +0 -0
  135. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/koko_eating_bananas.json +0 -0
  136. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/kth_largest_element_in_a_stream.json +0 -0
  137. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/kth_largest_element_in_an_array.json +0 -0
  138. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/kth_smallest_element_in_a_bst.json +0 -0
  139. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/largest_number.json +0 -0
  140. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/largest_rectangle_in_histogram.json +0 -0
  141. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/last_stone_weight.json +0 -0
  142. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/last_stone_weight_ii.json +0 -0
  143. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/lemonade_change.json +0 -0
  144. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/letter_combinations_of_a_phone_number.json +0 -0
  145. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/lfu_cache.json +0 -0
  146. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/linked_list_cycle.json +0 -0
  147. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/linked_list_cycle_ii.json +0 -0
  148. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_common_prefix.json +0 -0
  149. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_common_subsequence.json +0 -0
  150. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_consecutive_sequence.json +0 -0
  151. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_happy_string.json +0 -0
  152. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_increasing_path_in_a_matrix.json +0 -0
  153. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_increasing_subsequence.json +0 -0
  154. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_palindrome.json +0 -0
  155. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_palindromic_substring.json +0 -0
  156. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_repeating_character_replacement.json +0 -0
  157. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_substring_without_repeating_characters.json +0 -0
  158. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_turbulent_subarray.json +0 -0
  159. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_valid_parentheses.json +0 -0
  160. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/lowest_common_ancestor_of_a_binary_search_tree.json +0 -0
  161. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/lowest_common_ancestor_of_a_binary_tree.json +0 -0
  162. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/lru_cache.json +0 -0
  163. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/majority_element.json +0 -0
  164. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/majority_element_ii.json +0 -0
  165. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/matchsticks_to_square.json +0 -0
  166. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/max_area_of_island.json +0 -0
  167. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/max_points_on_a_line.json +0 -0
  168. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/maximal_square.json +0 -0
  169. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/maximum_depth_of_binary_tree.json +0 -0
  170. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/maximum_frequency_stack.json +0 -0
  171. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/maximum_product_subarray.json +0 -0
  172. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/maximum_profit_in_job_scheduling.json +0 -0
  173. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/maximum_subarray.json +0 -0
  174. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/maximum_sum_circular_subarray.json +0 -0
  175. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/maximum_width_of_binary_tree.json +0 -0
  176. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/median_of_two_sorted_arrays.json +0 -0
  177. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/meeting_rooms.json +0 -0
  178. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/meeting_rooms_ii.json +0 -0
  179. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/meeting_rooms_iii.json +0 -0
  180. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/merge_intervals.json +0 -0
  181. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/merge_k_sorted_lists.json +0 -0
  182. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/merge_sorted_array.json +0 -0
  183. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/merge_strings_alternately.json +0 -0
  184. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/merge_triplets_to_form_target_triplet.json +0 -0
  185. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/merge_two_sorted_lists.json +0 -0
  186. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/middle_of_the_linked_list.json +0 -0
  187. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/min_cost_climbing_stairs.json +0 -0
  188. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/min_cost_to_connect_all_points.json +0 -0
  189. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/min_stack.json +0 -0
  190. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/minimum_array_end.json +0 -0
  191. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/minimum_height_trees.json +0 -0
  192. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/minimum_interval_to_include_each_query.json +0 -0
  193. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/minimum_knight_moves.json +0 -0
  194. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/minimum_path_sum.json +0 -0
  195. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/minimum_size_subarray_sum.json +0 -0
  196. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/minimum_window_substring.json +0 -0
  197. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/missing_number.json +0 -0
  198. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/move_zeroes.json +0 -0
  199. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/multiply_strings.json +0 -0
  200. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/my_calendar_i.json +0 -0
  201. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/n_queens.json +0 -0
  202. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/n_queens_ii.json +0 -0
  203. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/n_th_tribonacci_number.json +0 -0
  204. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/network_delay_time.json +0 -0
  205. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/next_permutation.json +0 -0
  206. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/non_overlapping_intervals.json +0 -0
  207. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/number_of_1_bits.json +0 -0
  208. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/number_of_connected_components_in_an_undirected_graph.json +0 -0
  209. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/number_of_islands.json +0 -0
  210. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/number_of_provinces.json +0 -0
  211. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/odd_even_linked_list.json +0 -0
  212. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/online_stock_span.json +0 -0
  213. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/open_the_lock.json +0 -0
  214. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/pacific_atlantic_water_flow.json +0 -0
  215. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/palindrome_linked_list.json +0 -0
  216. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/palindrome_number.json +0 -0
  217. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/palindrome_pairs.json +0 -0
  218. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/palindrome_partitioning.json +0 -0
  219. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/palindromic_substrings.json +0 -0
  220. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/partition_equal_subset_sum.json +0 -0
  221. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/partition_labels.json +0 -0
  222. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/partition_to_k_equal_sum_subsets.json +0 -0
  223. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/path_sum_ii.json +0 -0
  224. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/path_sum_iii.json +0 -0
  225. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/path_with_minimum_effort.json +0 -0
  226. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/perfect_squares.json +0 -0
  227. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/permutation_in_string.json +0 -0
  228. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/permutations.json +0 -0
  229. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/permutations_ii.json +0 -0
  230. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/plus_one.json +0 -0
  231. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/powx_n.json +0 -0
  232. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/product_of_array_except_self.json +0 -0
  233. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/random_pick_with_weight.json +0 -0
  234. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/range_sum_query_2d_immutable.json +0 -0
  235. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/ransom_note.json +0 -0
  236. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/reconstruct_itinerary.json +0 -0
  237. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/redundant_connection.json +0 -0
  238. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/regular_expression_matching.json +0 -0
  239. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/remove_duplicates_from_sorted_array.json +0 -0
  240. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/remove_element.json +0 -0
  241. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/remove_nth_node_from_end_of_list.json +0 -0
  242. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/reorder_list.json +0 -0
  243. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/reorganize_string.json +0 -0
  244. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/reverse_bits.json +0 -0
  245. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/reverse_integer.json +0 -0
  246. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/reverse_linked_list.json +0 -0
  247. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/reverse_linked_list_ii.json +0 -0
  248. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/reverse_nodes_in_k_group.json +0 -0
  249. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/reverse_string.json +0 -0
  250. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/reverse_words_in_a_string.json +0 -0
  251. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/roman_to_integer.json +0 -0
  252. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/rotate_array.json +0 -0
  253. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/rotate_image.json +0 -0
  254. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/rotate_list.json +0 -0
  255. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/rotting_oranges.json +0 -0
  256. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/same_tree.json +0 -0
  257. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/search_a_2d_matrix.json +0 -0
  258. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/search_in_rotated_sorted_array.json +0 -0
  259. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/search_in_rotated_sorted_array_ii.json +0 -0
  260. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/search_insert_position.json +0 -0
  261. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/serialize_and_deserialize_binary_tree.json +0 -0
  262. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/set_matrix_zeroes.json +0 -0
  263. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/shortest_path_in_binary_matrix.json +0 -0
  264. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/simplify_path.json +0 -0
  265. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/single_number.json +0 -0
  266. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/single_number_iii.json +0 -0
  267. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/single_threaded_cpu.json +0 -0
  268. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/sliding_window_maximum.json +0 -0
  269. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/smallest_range_covering_elements_from_k_lists.json +0 -0
  270. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/sort_an_array.json +0 -0
  271. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/sort_colors.json +0 -0
  272. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/sort_list.json +0 -0
  273. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/spiral_matrix.json +0 -0
  274. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/split_array_largest_sum.json +0 -0
  275. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/sqrtx.json +0 -0
  276. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/squares_of_a_sorted_array.json +0 -0
  277. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/stone_game.json +0 -0
  278. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/stone_game_ii.json +0 -0
  279. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/stone_game_iii.json +0 -0
  280. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/string_to_integer_atoi.json +0 -0
  281. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/subarray_sum_equals_k.json +0 -0
  282. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/subsets.json +0 -0
  283. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/subsets_ii.json +0 -0
  284. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/subtree_of_another_tree.json +0 -0
  285. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/sudoku_solver.json +0 -0
  286. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/sum_of_all_subset_xor_totals.json +0 -0
  287. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/sum_of_two_integers.json +0 -0
  288. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/surrounded_regions.json +0 -0
  289. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/swap_nodes_in_pairs.json +0 -0
  290. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/swim_in_rising_water.json +0 -0
  291. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/symmetric_tree.json +0 -0
  292. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/target_sum.json +0 -0
  293. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/task_scheduler.json +0 -0
  294. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/three_sum.json +0 -0
  295. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/three_sum_closest.json +0 -0
  296. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/time_based_key_value_store.json +0 -0
  297. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/top_k_frequent_elements.json +0 -0
  298. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/top_k_frequent_words.json +0 -0
  299. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/transpose_matrix.json +0 -0
  300. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/trapping_rain_water.json +0 -0
  301. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/two_sum.json +0 -0
  302. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/two_sum_ii_input_array_is_sorted.json +0 -0
  303. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/unique_paths.json +0 -0
  304. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/unique_paths_ii.json +0 -0
  305. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/valid_anagram.json +0 -0
  306. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/valid_palindrome.json +0 -0
  307. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/valid_palindrome_ii.json +0 -0
  308. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/valid_parentheses.json +0 -0
  309. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/valid_parenthesis_string.json +0 -0
  310. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/valid_sudoku.json +0 -0
  311. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/validate_binary_search_tree.json +0 -0
  312. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/verifying_an_alien_dictionary.json +0 -0
  313. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/walls_and_gates.json +0 -0
  314. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/word_break.json +0 -0
  315. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/word_break_ii.json +0 -0
  316. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/word_ladder.json +0 -0
  317. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/word_search.json +0 -0
  318. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/word_search_ii.json +0 -0
  319. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/problems/zero_one_matrix.json +0 -0
  320. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/json/tags.json5 +0 -0
  321. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/{{cookiecutter.problem_name}}/README.md +0 -0
  322. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/{{cookiecutter.problem_name}}/__init__.py +0 -0
  323. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/{{cookiecutter.problem_name}}/helpers.py +0 -0
  324. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/{{cookiecutter.problem_name}}/playground.ipynb +0 -0
  325. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/{{cookiecutter.problem_name}}/solution.py +0 -0
  326. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/resources/leetcode/{{cookiecutter.problem_name}}/test_solution.py +0 -0
  327. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/utils/__init__.py +0 -0
  328. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/utils/problem_finder.py +0 -0
  329. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/utils/resources.py +0 -0
  330. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/cli/utils/tag_helpers.py +0 -0
  331. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/data_structures/__init__.py +0 -0
  332. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/data_structures/_utils.py +0 -0
  333. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/data_structures/dict_tree.py +0 -0
  334. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/data_structures/doubly_list_node.py +0 -0
  335. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/data_structures/graph_node.py +0 -0
  336. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/data_structures/list_node.py +0 -0
  337. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/data_structures/tree_node.py +0 -0
  338. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/py.typed +0 -0
  339. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/tools/__init__.py +0 -0
  340. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/tools/check_test_cases.py +0 -0
  341. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/tools/generator.py +0 -0
  342. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/tools/logged_test.py +0 -0
  343. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/src/leetcode_py/tools/parser.py +0 -0
  344. {leetcode_py_sdk-1.0.2 → leetcode_py_sdk-1.0.3}/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: 1.0.2
3
+ Version: 1.0.3
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
@@ -30,12 +30,13 @@ Requires-Dist: ruff>=0.14.0
30
30
  Requires-Dist: ty>=0.0.13
31
31
  Requires-Dist: typer>=0.21.0
32
32
  Requires-Python: >=3.10
33
- Project-URL: Homepage, https://github.com/wislertt/leetcode-py
33
+ Project-URL: Changelog, https://github.com/wislertt/leetcode-py/releases
34
+ Project-URL: Documentation, https://leetcode-py.wisl.dev
35
+ Project-URL: Homepage, https://leetcode-py.wisl.dev
36
+ Project-URL: Issues, https://github.com/wislertt/leetcode-py/issues
34
37
  Project-URL: Repository, https://github.com/wislertt/leetcode-py
35
38
  Description-Content-Type: text/markdown
36
39
 
37
- # LeetCode Practice Environment Generator 🚀
38
-
39
40
  [![tests](https://img.shields.io/github/actions/workflow/status/wislertt/leetcode-py/cd.yml?branch=main&label=tests&logo=github)](https://github.com/wislertt/leetcode-py/actions/workflows/cd.yml)
40
41
  [![release](https://img.shields.io/github/actions/workflow/status/wislertt/leetcode-py/cd.yml?branch=main&label=release&logo=github)](https://github.com/wislertt/leetcode-py/actions/workflows/cd.yml)
41
42
  [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=wislertt_leetcode-py&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=wislertt_leetcode-py)
@@ -48,6 +49,15 @@ Description-Content-Type: text/markdown
48
49
  [![Star ⭐](https://img.shields.io/github/stars/wislertt/leetcode-py?style=flat&logo=github&color=ffcc00)](https://github.com/wislertt/leetcode-py)
49
50
  [![Sponsor 💖](https://img.shields.io/badge/Sponsor-💖-pink?style=flat)](https://github.com/sponsors/wislertt)
50
51
 
52
+ <p align="center">
53
+ <picture>
54
+ <source media="(prefers-color-scheme: dark)" srcset="https://cdn.jsdelivr.net/gh/wislertt/leetcode-py@main/docs/img/brand/leetcode-py-lockup-dark.svg">
55
+ <img src="https://cdn.jsdelivr.net/gh/wislertt/leetcode-py@main/docs/img/brand/leetcode-py-lockup.svg" width="360" alt="leetcode-py logo">
56
+ </picture>
57
+ </p>
58
+
59
+ # leetcode-py
60
+
51
61
  A Python package to generate professional LeetCode practice environments. Features automated problem generation from LeetCode URLs, beautiful data structure visualizations (TreeNode, ListNode, GraphNode), and comprehensive testing with 10+ test cases per problem. Built with professional development practices including CI/CD, type hints, and quality gates.
52
62
 
53
63
  ## Table of Contents
@@ -65,12 +75,12 @@ A Python package to generate professional LeetCode practice environments. Featur
65
75
 
66
76
  **What makes this different:**
67
77
 
68
- - 🤖 **[LLM-Assisted Workflow](https://github.com/wislertt/leetcode-py/blob/main/docs/llm-assisted-problem-creation.md)**: Generate new problems instantly with AI assistance
78
+ - 🤖 **[LLM-Assisted Workflow](https://leetcode-py.wisl.dev/contributing/problem-creation)**: Generate new problems instantly with AI assistance
69
79
  - 🎨 **Visual Debugging**: Interactive tree/graph rendering with Graphviz and anytree
70
80
  - 🧪 **Production Testing**: Comprehensive test suites with edge cases and reproducibility verification
71
81
  - 🚀 **Modern Python**: PEP 585/604 type hints, uv, and professional tooling
72
82
  - 📊 **Quality Assurance**: 95%+ test coverage, security scanning, automated linting
73
- - ⚡ **[Powerful CLI](https://github.com/wislertt/leetcode-py/blob/main/docs/cli-usage.md)**: Generate problems anywhere with `lcpy` command
83
+ - ⚡ **[Powerful CLI](https://leetcode-py.wisl.dev/cli/lcpy)**: Generate problems anywhere with `lcpy` command
74
84
 
75
85
  ## <a id="whats-included"></a>🎯 What's Included
76
86
 
@@ -209,7 +219,7 @@ _Interactive multi-cell playground with rich data structure visualization for ea
209
219
 
210
220
  ### CLI Usage (Global Installation)
211
221
 
212
- Perfect for quick problem generation anywhere. See the 📖 **[Complete CLI Usage Guide](https://github.com/wislertt/leetcode-py/blob/main/docs/cli-usage.md)** for detailed documentation with all options and examples.
222
+ Perfect for quick problem generation anywhere. See the 📖 **[Complete CLI Usage Guide](https://leetcode-py.wisl.dev/cli/lcpy)** for detailed documentation with all options and examples.
213
223
 
214
224
  ## <a id="development-setup"></a>🛠️ Development Setup
215
225
 
@@ -241,7 +251,7 @@ bake gen-all-problems
241
251
 
242
252
  To extend the problem collection beyond the current catalog, leverage an LLM assistant within your IDE (Cursor, GitHub Copilot Chat, Amazon Q, etc.).
243
253
 
244
- 📖 **[Complete LLM-Assisted Problem Creation Guide](https://github.com/wislertt/leetcode-py/blob/main/docs/llm-assisted-problem-creation.md)** - Comprehensive guide with screenshots and detailed workflow.
254
+ 📖 **[Complete LLM-Assisted Problem Creation Guide](https://leetcode-py.wisl.dev/contributing/problem-creation)** - Comprehensive guide with screenshots and detailed workflow.
245
255
 
246
256
  **Quick Start:**
247
257
 
@@ -296,7 +306,7 @@ uv run python -m leetcode_py.tools.check_test_cases --threshold=10
296
306
 
297
307
  ### CLI Commands (Global)
298
308
 
299
- 📖 **[Complete CLI Usage Guide](https://github.com/wislertt/leetcode-py/blob/main/docs/cli-usage.md)** - Detailed documentation with all options and examples.
309
+ 📖 **[Complete CLI Usage Guide](https://leetcode-py.wisl.dev/cli/lcpy)** - Detailed documentation with all options and examples.
300
310
 
301
311
  ```bash
302
312
  # Generate problems
@@ -1,5 +1,3 @@
1
- # LeetCode Practice Environment Generator 🚀
2
-
3
1
  [![tests](https://img.shields.io/github/actions/workflow/status/wislertt/leetcode-py/cd.yml?branch=main&label=tests&logo=github)](https://github.com/wislertt/leetcode-py/actions/workflows/cd.yml)
4
2
  [![release](https://img.shields.io/github/actions/workflow/status/wislertt/leetcode-py/cd.yml?branch=main&label=release&logo=github)](https://github.com/wislertt/leetcode-py/actions/workflows/cd.yml)
5
3
  [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=wislertt_leetcode-py&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=wislertt_leetcode-py)
@@ -12,6 +10,15 @@
12
10
  [![Star ⭐](https://img.shields.io/github/stars/wislertt/leetcode-py?style=flat&logo=github&color=ffcc00)](https://github.com/wislertt/leetcode-py)
13
11
  [![Sponsor 💖](https://img.shields.io/badge/Sponsor-💖-pink?style=flat)](https://github.com/sponsors/wislertt)
14
12
 
13
+ <p align="center">
14
+ <picture>
15
+ <source media="(prefers-color-scheme: dark)" srcset="https://cdn.jsdelivr.net/gh/wislertt/leetcode-py@main/docs/img/brand/leetcode-py-lockup-dark.svg">
16
+ <img src="https://cdn.jsdelivr.net/gh/wislertt/leetcode-py@main/docs/img/brand/leetcode-py-lockup.svg" width="360" alt="leetcode-py logo">
17
+ </picture>
18
+ </p>
19
+
20
+ # leetcode-py
21
+
15
22
  A Python package to generate professional LeetCode practice environments. Features automated problem generation from LeetCode URLs, beautiful data structure visualizations (TreeNode, ListNode, GraphNode), and comprehensive testing with 10+ test cases per problem. Built with professional development practices including CI/CD, type hints, and quality gates.
16
23
 
17
24
  ## Table of Contents
@@ -29,12 +36,12 @@ A Python package to generate professional LeetCode practice environments. Featur
29
36
 
30
37
  **What makes this different:**
31
38
 
32
- - 🤖 **[LLM-Assisted Workflow](https://github.com/wislertt/leetcode-py/blob/main/docs/llm-assisted-problem-creation.md)**: Generate new problems instantly with AI assistance
39
+ - 🤖 **[LLM-Assisted Workflow](https://leetcode-py.wisl.dev/contributing/problem-creation)**: Generate new problems instantly with AI assistance
33
40
  - 🎨 **Visual Debugging**: Interactive tree/graph rendering with Graphviz and anytree
34
41
  - 🧪 **Production Testing**: Comprehensive test suites with edge cases and reproducibility verification
35
42
  - 🚀 **Modern Python**: PEP 585/604 type hints, uv, and professional tooling
36
43
  - 📊 **Quality Assurance**: 95%+ test coverage, security scanning, automated linting
37
- - ⚡ **[Powerful CLI](https://github.com/wislertt/leetcode-py/blob/main/docs/cli-usage.md)**: Generate problems anywhere with `lcpy` command
44
+ - ⚡ **[Powerful CLI](https://leetcode-py.wisl.dev/cli/lcpy)**: Generate problems anywhere with `lcpy` command
38
45
 
39
46
  ## <a id="whats-included"></a>🎯 What's Included
40
47
 
@@ -173,7 +180,7 @@ _Interactive multi-cell playground with rich data structure visualization for ea
173
180
 
174
181
  ### CLI Usage (Global Installation)
175
182
 
176
- Perfect for quick problem generation anywhere. See the 📖 **[Complete CLI Usage Guide](https://github.com/wislertt/leetcode-py/blob/main/docs/cli-usage.md)** for detailed documentation with all options and examples.
183
+ Perfect for quick problem generation anywhere. See the 📖 **[Complete CLI Usage Guide](https://leetcode-py.wisl.dev/cli/lcpy)** for detailed documentation with all options and examples.
177
184
 
178
185
  ## <a id="development-setup"></a>🛠️ Development Setup
179
186
 
@@ -205,7 +212,7 @@ bake gen-all-problems
205
212
 
206
213
  To extend the problem collection beyond the current catalog, leverage an LLM assistant within your IDE (Cursor, GitHub Copilot Chat, Amazon Q, etc.).
207
214
 
208
- 📖 **[Complete LLM-Assisted Problem Creation Guide](https://github.com/wislertt/leetcode-py/blob/main/docs/llm-assisted-problem-creation.md)** - Comprehensive guide with screenshots and detailed workflow.
215
+ 📖 **[Complete LLM-Assisted Problem Creation Guide](https://leetcode-py.wisl.dev/contributing/problem-creation)** - Comprehensive guide with screenshots and detailed workflow.
209
216
 
210
217
  **Quick Start:**
211
218
 
@@ -260,7 +267,7 @@ uv run python -m leetcode_py.tools.check_test_cases --threshold=10
260
267
 
261
268
  ### CLI Commands (Global)
262
269
 
263
- 📖 **[Complete CLI Usage Guide](https://github.com/wislertt/leetcode-py/blob/main/docs/cli-usage.md)** - Detailed documentation with all options and examples.
270
+ 📖 **[Complete CLI Usage Guide](https://leetcode-py.wisl.dev/cli/lcpy)** - Detailed documentation with all options and examples.
264
271
 
265
272
  ```bash
266
273
  # Generate problems
@@ -0,0 +1,154 @@
1
+ [project]
2
+ name = "leetcode-py-sdk"
3
+ version = "1.0.3"
4
+ description = "Modern Python LeetCode practice environment with automated problem generation, beautiful data structure visualizations, and comprehensive testing"
5
+ readme = "README.md"
6
+ requires-python = ">=3.10"
7
+ keywords = [
8
+ "algorithms",
9
+ "coding-practice",
10
+ "data-structures",
11
+ "interview-prep",
12
+ "leetcode",
13
+ ]
14
+ classifiers = [
15
+ "Development Status :: 5 - Production/Stable",
16
+ "Intended Audience :: Developers",
17
+ "Intended Audience :: Education",
18
+ "License :: OSI Approved :: Apache Software License",
19
+ "Programming Language :: Python :: 3",
20
+ "Programming Language :: Python :: 3.10",
21
+ "Programming Language :: Python :: 3.11",
22
+ "Programming Language :: Python :: 3.12",
23
+ "Programming Language :: Python :: 3.13",
24
+ "Programming Language :: Python :: 3.14",
25
+ "Topic :: Education",
26
+ "Topic :: Software Development :: Libraries :: Python Modules",
27
+ ]
28
+ dependencies = [
29
+ "anytree>=2.13.0",
30
+ "chardet>=7.4.3",
31
+ "cookiecutter>=2.6.0",
32
+ "graphviz>=0.21",
33
+ "json5>=0.13.0",
34
+ "loguru>=0.7.3",
35
+ "requests>=2.32.5",
36
+ "rich>=14.1.0",
37
+ "ruff>=0.14.0",
38
+ "ty>=0.0.13",
39
+ "typer>=0.21.0",
40
+ ]
41
+
42
+ [[project.authors]]
43
+ name = "Wisaroot Lertthaweedech"
44
+ email = "l.wisaroot@gmail.com"
45
+
46
+ [project.license]
47
+ text = "Apache-2.0"
48
+
49
+ [project.scripts]
50
+ lcpy = "leetcode_py.cli.main:app"
51
+
52
+ [project.urls]
53
+ Changelog = "https://github.com/wislertt/leetcode-py/releases"
54
+ Documentation = "https://leetcode-py.wisl.dev"
55
+ Homepage = "https://leetcode-py.wisl.dev"
56
+ Issues = "https://github.com/wislertt/leetcode-py/issues"
57
+ Repository = "https://github.com/wislertt/leetcode-py"
58
+
59
+ [dependency-groups]
60
+ dev = [
61
+ "bakefile[lib]>=0.0.57a0",
62
+ "deptry>=0.24.0",
63
+ "ipykernel>=7.0.0",
64
+ "jupytext>=1.16.6",
65
+ "nbqa>=1.9.1",
66
+ "pre-commit>=4.3.0",
67
+ "pytest-cov>=7.0.0",
68
+ "pytest>=9.0.0",
69
+ "ruff>=0.14.0",
70
+ "toml-sort>=0.24.3",
71
+ ]
72
+
73
+ [build-system]
74
+ requires = ["uv_build>=0.11.0,<0.12.0"]
75
+ build-backend = "uv_build"
76
+
77
+ [tool.coverage.run]
78
+ omit = ["src/leetcode_py/cli/resources/**"]
79
+
80
+ [tool.deptry]
81
+ known_first_party = ["leetcode_py"]
82
+ extend_exclude = [
83
+ ".claude",
84
+ "bakefile.py",
85
+ "leetcode",
86
+ "scripts",
87
+ "src/leetcode_py/cli/resources",
88
+ ]
89
+
90
+ [tool.deptry.per_rule_ignores]
91
+ DEP002 = ["chardet"]
92
+
93
+ [tool.pytest.ini_options]
94
+ testpaths = [
95
+ "leetcode",
96
+ "tests",
97
+ ]
98
+ norecursedirs = ["src/leetcode_py/cli/resources"]
99
+
100
+ [tool.ruff]
101
+ line-length = 100
102
+ extend-exclude = ["src/leetcode_py/cli/resources"]
103
+
104
+ [tool.ruff.lint]
105
+ select = [
106
+ "ARG",
107
+ "B",
108
+ "C4",
109
+ "E",
110
+ "F",
111
+ "I",
112
+ "N",
113
+ "PGH",
114
+ "PIE",
115
+ "PYI",
116
+ "RUF",
117
+ "SIM",
118
+ "UP",
119
+ ]
120
+
121
+ [tool.ruff.lint.per-file-ignores]
122
+ "leetcode/*/playground.py" = ["B018"]
123
+ "leetcode/*/solution.py" = ["ARG002"]
124
+
125
+ [tool.ty.environment]
126
+ root = [
127
+ ".",
128
+ "./.claude/.dev",
129
+ ]
130
+
131
+ [[tool.ty.overrides]]
132
+ include = [
133
+ "leetcode/*/playground.ipynb",
134
+ "leetcode/*/playground.py",
135
+ ]
136
+
137
+ [tool.ty.overrides.rules]
138
+ unresolved-import = "ignore"
139
+
140
+ [tool.ty.src]
141
+ exclude = [
142
+ "scripts/branding",
143
+ "src/leetcode_py/cli/resources",
144
+ ]
145
+
146
+ [tool.uv.build-backend]
147
+ module-name = ["leetcode_py"]
148
+ module-root = "src"
149
+
150
+ [[tool.uv.index]]
151
+ name = "test-pypi"
152
+ url = "https://test.pypi.org/simple/"
153
+ publish-url = "https://test.pypi.org/legacy/"
154
+ explicit = true
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "leetcode-py-sdk"
3
- version = "1.0.2" # use git tag instead
3
+ version = "1.0.3" # 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"}
@@ -41,7 +41,10 @@ dependencies = [
41
41
  lcpy = "leetcode_py.cli.main:app"
42
42
 
43
43
  [project.urls]
44
- Homepage = "https://github.com/wislertt/leetcode-py"
44
+ Changelog = "https://github.com/wislertt/leetcode-py/releases"
45
+ Documentation = "https://leetcode-py.wisl.dev"
46
+ Homepage = "https://leetcode-py.wisl.dev"
47
+ Issues = "https://github.com/wislertt/leetcode-py/issues"
45
48
  Repository = "https://github.com/wislertt/leetcode-py"
46
49
 
47
50
  [dependency-groups]
@@ -73,6 +76,7 @@ extend_exclude = [
73
76
  ".claude",
74
77
  "bakefile.py",
75
78
  "leetcode",
79
+ "scripts",
76
80
  "src/leetcode_py/cli/resources"
77
81
  ]
78
82
  per_rule_ignores = {DEP002 = ["chardet"]}
@@ -122,6 +126,7 @@ unresolved-import = "ignore"
122
126
 
123
127
  [tool.ty.src]
124
128
  exclude = [
129
+ "scripts/branding",
125
130
  "src/leetcode_py/cli/resources"
126
131
  ]
127
132
 
@@ -6,7 +6,19 @@ from .commands.gen import generate
6
6
  from .commands.list import list_problems
7
7
  from .commands.scrape import scrape
8
8
 
9
- app = typer.Typer(help="LeetCode problem generator - Generate and list LeetCode problems")
9
+ DOCS_URL = "https://leetcode-py.wisl.dev"
10
+ _INSTALL_SKILL_CMD = f"npx skills add {DOCS_URL}"
11
+ AGENT_DOCS_EPILOG = f"""Docs: {DOCS_URL}
12
+ Full docs in one file (for AI agents): {DOCS_URL}/llms-full.txt
13
+ Docs index: {DOCS_URL}/llms.txt
14
+ Agent skill: {DOCS_URL}/skill.md
15
+ Install agent skill: `{_INSTALL_SKILL_CMD}`
16
+ Docs search via MCP: {DOCS_URL}/mcp"""
17
+
18
+ app = typer.Typer(
19
+ help="LeetCode problem generator - Generate and list LeetCode problems",
20
+ epilog=AGENT_DOCS_EPILOG,
21
+ )
10
22
 
11
23
 
12
24
  def show_version():
@@ -22,9 +22,9 @@
22
22
  "helpers_content": "",
23
23
  "helpers_run_name": "my_queue",
24
24
  "helpers_run_signature": "(solution_class: type, operations: list[str], inputs: list[list[int]])",
25
- "helpers_run_body": " queue = None\n results: list[int | None | bool] = []\n for i, op in enumerate(operations):\n if op == 'MyQueue':\n queue = solution_class()\n results.append(None)\n elif op == 'push' and queue is not None:\n queue.push(inputs[i][0])\n results.append(None)\n elif op == 'pop' and queue is not None:\n results.append(queue.pop())\n elif op == 'peek' and queue is not None:\n results.append(queue.peek())\n elif op == 'empty' and queue is not None:\n results.append(queue.empty())\n return results, queue",
25
+ "helpers_run_body": " queue = None\n results: list[int | bool | None] = []\n for i, op in enumerate(operations):\n if op == 'MyQueue':\n queue = solution_class()\n results.append(None)\n elif op == 'push' and queue is not None:\n queue.push(inputs[i][0])\n results.append(None)\n elif op == 'pop' and queue is not None:\n results.append(queue.pop())\n elif op == 'peek' and queue is not None:\n results.append(queue.peek())\n elif op == 'empty' and queue is not None:\n results.append(queue.empty())\n return results, queue",
26
26
  "helpers_assert_name": "my_queue",
27
- "helpers_assert_signature": "(result: list[int | None | bool], expected: list[int | None | bool]) -> bool",
27
+ "helpers_assert_signature": "(result: list[int | bool | None], expected: list[int | bool | None]) -> bool",
28
28
  "helpers_assert_body": " assert result == expected\n return True",
29
29
  "solution_imports": "",
30
30
  "solution_contents": "",
@@ -69,7 +69,7 @@
69
69
  "list": [
70
70
  {
71
71
  "name": "test_queue_operations",
72
- "signature": "(self, operations: list[str], inputs: list[list[int]], expected: list[int | None | bool])",
72
+ "signature": "(self, operations: list[str], inputs: list[list[int]], expected: list[int | bool | None])",
73
73
  "parametrize": "operations, inputs, expected",
74
74
  "test_cases": {
75
75
  "list": [
@@ -20,9 +20,9 @@
20
20
  "helpers_content": "",
21
21
  "helpers_run_name": "my_stack",
22
22
  "helpers_run_signature": "(solution_class: type, operations: list[str], inputs: list[list[int]])",
23
- "helpers_run_body": " stack = None\n results: list[int | None | bool] = []\n for i, op in enumerate(operations):\n if op == 'MyStack':\n stack = solution_class()\n results.append(None)\n elif op == 'push' and stack is not None:\n stack.push(inputs[i][0])\n results.append(None)\n elif op == 'pop' and stack is not None:\n results.append(stack.pop())\n elif op == 'top' and stack is not None:\n results.append(stack.top())\n elif op == 'empty' and stack is not None:\n results.append(stack.empty())\n return results, stack",
23
+ "helpers_run_body": " stack = None\n results: list[int | bool | None] = []\n for i, op in enumerate(operations):\n if op == 'MyStack':\n stack = solution_class()\n results.append(None)\n elif op == 'push' and stack is not None:\n stack.push(inputs[i][0])\n results.append(None)\n elif op == 'pop' and stack is not None:\n results.append(stack.pop())\n elif op == 'top' and stack is not None:\n results.append(stack.top())\n elif op == 'empty' and stack is not None:\n results.append(stack.empty())\n return results, stack",
24
24
  "helpers_assert_name": "my_stack",
25
- "helpers_assert_signature": "(result: list[int | None | bool], expected: list[int | None | bool]) -> bool",
25
+ "helpers_assert_signature": "(result: list[int | bool | None], expected: list[int | bool | None]) -> bool",
26
26
  "helpers_assert_body": " assert result == expected\n return True",
27
27
  "solution_imports": "",
28
28
  "solution_contents": "",
@@ -67,7 +67,7 @@
67
67
  "list": [
68
68
  {
69
69
  "name": "test_stack_operations",
70
- "signature": "(self, operations: list[str], inputs: list[list[int]], expected: list[int | None | bool])",
70
+ "signature": "(self, operations: list[str], inputs: list[list[int]], expected: list[int | bool | None])",
71
71
  "parametrize": "operations, inputs, expected",
72
72
  "test_cases": {
73
73
  "list": [