leetcode-py-sdk 0.46.0__tar.gz → 1.0.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.
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/PKG-INFO +9 -10
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/README.md +7 -8
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/pyproject.toml +3 -3
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/all_nodes_distance_k_in_binary_tree.json +82 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/asteroid_collision.json +88 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/backspace_string_compare.json +85 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/baseball_game.json +82 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/basic_calculator_ii.json +94 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/best_time_to_buy_and_sell_stock_ii.json +99 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/binary_tree_zigzag_level_order_traversal.json +91 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/bitwise_and_of_numbers_range.json +99 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/boats_to_save_people.json +88 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/build_a_matrix_with_conditions.json +85 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/bus_routes.json +82 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/candy.json +96 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/capacity_to_ship_packages_within_d_days.json +88 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/car_pooling.json +91 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/combination_sum_iv.json +82 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/combinations.json +93 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/concatenation_of_array.json +83 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/construct_quad_tree.json +82 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/contains_duplicate_ii.json +85 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/convert_sorted_array_to_binary_search_tree.json +90 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/course_schedule_iv.json +94 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/delete_leaves_with_a_given_value.json +94 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/delete_node_in_a_bst.json +85 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/design_circular_queue.json +109 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/design_hash_map.json +92 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/design_hash_set.json +92 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/design_hit_counter.json +86 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/dota2_senate.json +82 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/employee_free_time.json +85 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/evaluate_division.json +85 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/excel_sheet_column_title.json +99 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/extra_characters_in_a_string.json +85 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/find_critical_and_pseudo_critical_edges_in_minimum_spanning_tree.json +87 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/find_in_mountain_array.json +91 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/find_the_town_judge.json +88 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/four_sum.json +77 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/gcd_of_strings.json +94 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/greatest_common_divisor_traversal.json +88 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/guess_number_higher_or_lower.json +85 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/house_robber_iii.json +81 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/implement_stack_using_queues.json +96 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/inorder_successor_in_bst.json +88 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/insert_delete_getrandom_o1.json +94 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/insert_greatest_common_divisors_in_linked_list.json +90 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/insert_into_a_binary_search_tree.json +84 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/integer_break.json +82 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/ipo.json +82 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/island_perimeter.json +85 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/jump_game_vii.json +83 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/largest_number.json +91 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/last_stone_weight_ii.json +85 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/lemonade_change.json +83 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/lfu_cache.json +89 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/longest_common_prefix.json +91 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/longest_happy_string.json +93 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/longest_turbulent_subarray.json +88 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/longest_valid_parentheses.json +94 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/majority_element_ii.json +85 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/matchsticks_to_square.json +82 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/maximal_square.json +93 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/maximum_frequency_stack.json +86 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/maximum_sum_circular_subarray.json +88 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/meeting_rooms_iii.json +84 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/merge_sorted_array.json +99 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/merge_strings_alternately.json +86 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/minimum_array_end.json +90 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/minimum_knight_moves.json +91 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/minimum_size_subarray_sum.json +85 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/move_zeroes.json +82 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/n_queens_ii.json +76 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/n_th_tribonacci_number.json +92 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/online_stock_span.json +87 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/open_the_lock.json +84 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/palindrome_linked_list.json +91 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/palindrome_number.json +94 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/palindrome_pairs.json +85 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/partition_to_k_equal_sum_subsets.json +79 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/path_with_minimum_effort.json +88 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/perfect_squares.json +84 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/permutations_ii.json +77 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/random_pick_with_weight.json +87 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/range_sum_query_2d_immutable.json +84 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/remove_duplicates_from_sorted_array.json +79 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/remove_element.json +79 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/reorganize_string.json +77 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/reverse_string.json +82 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/roman_to_integer.json +94 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/rotate_list.json +92 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/search_in_rotated_sorted_array_ii.json +96 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/search_insert_position.json +77 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/shortest_path_in_binary_matrix.json +77 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/simplify_path.json +105 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/single_threaded_cpu.json +85 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/smallest_range_covering_elements_from_k_lists.json +82 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/sort_an_array.json +85 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/sort_list.json +93 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/split_array_largest_sum.json +82 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/sqrtx.json +96 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/squares_of_a_sorted_array.json +79 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/stone_game.json +85 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/stone_game_ii.json +91 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/stone_game_iii.json +96 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/sudoku_solver.json +85 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/sum_of_all_subset_xor_totals.json +88 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/symmetric_tree.json +91 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/three_sum_closest.json +91 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/transpose_matrix.json +81 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/unique_paths_ii.json +77 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/valid_palindrome_ii.json +84 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/verifying_an_alien_dictionary.json +88 -0
- leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/word_break_ii.json +99 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/tags.json5 +185 -5
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/__init__.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/__init__.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/commands/__init__.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/commands/gen.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/commands/list.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/commands/scrape.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/main.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/cookiecutter.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/accounts_merge.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/add_binary.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/add_two_numbers.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/alien_dictionary.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/balanced_binary_tree.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/basic_calculator.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/best_time_to_buy_and_sell_stock.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/best_time_to_buy_and_sell_stock_with_cooldown.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_search.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_tree_inorder_traversal.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_tree_level_order_traversal.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_tree_maximum_path_sum.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_tree_postorder_traversal.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_tree_preorder_traversal.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/binary_tree_right_side_view.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/burst_balloons.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/car_fleet.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/cheapest_flights_within_k_stops.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/climbing_stairs.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/clone_graph.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/coin_change.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/coin_change_ii.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/combination_sum.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/combination_sum_ii.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/construct_binary_tree_from_preorder_and_inorder_traversal.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/container_with_most_water.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/contains_duplicate.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/contiguous_array.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/copy_list_with_random_pointer.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/count_good_nodes_in_binary_tree.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/counting_bits.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/course_schedule.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/course_schedule_ii.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/daily_temperatures.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/decode_string.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/decode_ways.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/design_add_and_search_words_data_structure.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/design_in_memory_file_system.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/design_twitter.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/detect_squares.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/diagonal_traverse.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/diameter_of_binary_tree.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/distinct_subsequences.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/edit_distance.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/encode_and_decode_strings.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/evaluate_reverse_polish_notation.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/find_all_anagrams_in_a_string.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/find_first_and_last_position_of_element_in_sorted_array.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/find_k_closest_elements.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/find_median_from_data_stream.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/find_minimum_in_rotated_sorted_array.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/find_the_duplicate_number.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/first_bad_version.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/first_missing_positive.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/flood_fill.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/gas_station.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/generate_parentheses.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/graph_valid_tree.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/group_anagrams.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/hand_of_straights.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/happy_number.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/house_robber.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/house_robber_ii.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/implement_queue_using_stacks.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/implement_trie_prefix_tree.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/insert_interval.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/interleaving_string.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/invert_binary_tree.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/is_graph_bipartite.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/is_subsequence.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/jump_game.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/jump_game_ii.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/k_closest_points_to_origin.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/koko_eating_bananas.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/kth_largest_element_in_a_stream.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/kth_largest_element_in_an_array.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/kth_smallest_element_in_a_bst.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/largest_rectangle_in_histogram.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/last_stone_weight.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/letter_combinations_of_a_phone_number.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/linked_list_cycle.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/linked_list_cycle_ii.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_common_subsequence.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_consecutive_sequence.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_increasing_path_in_a_matrix.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_increasing_subsequence.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_palindrome.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_palindromic_substring.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_repeating_character_replacement.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/longest_substring_without_repeating_characters.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/lowest_common_ancestor_of_a_binary_search_tree.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/lowest_common_ancestor_of_a_binary_tree.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/lru_cache.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/majority_element.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/max_area_of_island.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/max_points_on_a_line.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/maximum_depth_of_binary_tree.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/maximum_product_subarray.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/maximum_profit_in_job_scheduling.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/maximum_subarray.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/maximum_width_of_binary_tree.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/median_of_two_sorted_arrays.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/meeting_rooms.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/meeting_rooms_ii.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/merge_intervals.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/merge_k_sorted_lists.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/merge_triplets_to_form_target_triplet.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/merge_two_sorted_lists.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/middle_of_the_linked_list.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/min_cost_climbing_stairs.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/min_cost_to_connect_all_points.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/min_stack.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/minimum_height_trees.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/minimum_interval_to_include_each_query.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/minimum_path_sum.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/minimum_window_substring.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/missing_number.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/multiply_strings.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/my_calendar_i.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/n_queens.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/network_delay_time.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/next_permutation.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/non_overlapping_intervals.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/number_of_1_bits.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/number_of_connected_components_in_an_undirected_graph.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/number_of_islands.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/number_of_provinces.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/odd_even_linked_list.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/pacific_atlantic_water_flow.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/palindrome_partitioning.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/palindromic_substrings.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/partition_equal_subset_sum.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/partition_labels.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/path_sum_ii.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/path_sum_iii.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/permutation_in_string.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/permutations.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/plus_one.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/powx_n.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/product_of_array_except_self.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/ransom_note.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/reconstruct_itinerary.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/redundant_connection.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/regular_expression_matching.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/remove_nth_node_from_end_of_list.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/reorder_list.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/reverse_bits.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/reverse_integer.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/reverse_linked_list.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/reverse_linked_list_ii.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/reverse_nodes_in_k_group.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/reverse_words_in_a_string.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/rotate_array.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/rotate_image.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/rotting_oranges.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/same_tree.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/search_a_2d_matrix.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/search_in_rotated_sorted_array.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/serialize_and_deserialize_binary_tree.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/set_matrix_zeroes.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/single_number.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/single_number_iii.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/sliding_window_maximum.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/sort_colors.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/spiral_matrix.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/string_to_integer_atoi.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/subarray_sum_equals_k.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/subsets.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/subsets_ii.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/subtree_of_another_tree.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/sum_of_two_integers.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/surrounded_regions.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/swap_nodes_in_pairs.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/swim_in_rising_water.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/target_sum.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/task_scheduler.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/three_sum.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/time_based_key_value_store.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/top_k_frequent_elements.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/top_k_frequent_words.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/trapping_rain_water.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/two_sum.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/two_sum_ii_input_array_is_sorted.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/unique_paths.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/valid_anagram.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/valid_palindrome.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/valid_parentheses.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/valid_parenthesis_string.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/valid_sudoku.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/validate_binary_search_tree.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/walls_and_gates.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/word_break.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/word_ladder.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/word_search.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/word_search_ii.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/json/problems/zero_one_matrix.json +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/{{cookiecutter.problem_name}}/README.md +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/{{cookiecutter.problem_name}}/__init__.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/{{cookiecutter.problem_name}}/helpers.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/{{cookiecutter.problem_name}}/playground.ipynb +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/{{cookiecutter.problem_name}}/solution.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/resources/leetcode/{{cookiecutter.problem_name}}/test_solution.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/utils/__init__.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/utils/problem_finder.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/utils/resources.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/cli/utils/tag_helpers.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/data_structures/__init__.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/data_structures/_utils.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/data_structures/dict_tree.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/data_structures/doubly_list_node.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/data_structures/graph_node.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/data_structures/list_node.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/data_structures/tree_node.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/py.typed +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/tools/__init__.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/tools/check_test_cases.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/tools/generator.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/tools/logged_test.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/tools/parser.py +0 -0
- {leetcode_py_sdk-0.46.0 → leetcode_py_sdk-1.0.0}/src/leetcode_py/tools/scraper.py +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: leetcode-py-sdk
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 1.0.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
|
|
7
7
|
Author-email: Wisaroot Lertthaweedech <l.wisaroot@gmail.com>
|
|
8
8
|
License: Apache-2.0
|
|
9
|
-
Classifier: Development Status ::
|
|
9
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
10
10
|
Classifier: Intended Audience :: Developers
|
|
11
11
|
Classifier: Intended Audience :: Education
|
|
12
12
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
@@ -77,14 +77,13 @@ A Python package to generate professional LeetCode practice environments. Featur
|
|
|
77
77
|
**Current Problem Sets**:
|
|
78
78
|
|
|
79
79
|
- **grind-75** - Essential coding interview questions from [Grind 75](https://www.techinterviewhandbook.org/grind75/) ✅ Complete
|
|
80
|
-
- **grind** - Extended Grind collection including all Grind 75 plus additional problems
|
|
80
|
+
- **grind** - Extended Grind collection including all Grind 75 plus additional problems ✅ Complete
|
|
81
81
|
- **blind-75** - Original [Blind 75](https://leetcode.com/problem-list/xi4ci4ig/) curated list ✅ Complete
|
|
82
82
|
- **neetcode-150** - Comprehensive [NeetCode 150](https://neetcode.io/practice) problem set ✅ Complete
|
|
83
|
+
- **neetcode-250** - Full [NeetCode 250](https://neetcode.io/practice) roadmap extending NeetCode 150 with 100 more problems ✅ Complete
|
|
83
84
|
- **algo-master-75** - Curated algorithmic mastery problems ✅ Complete
|
|
84
85
|
|
|
85
|
-
**Coverage**:
|
|
86
|
-
|
|
87
|
-
**Note**: Some problem sets are partially covered. We're actively working to complete all collections. [Contributions welcome!](https://github.com/wislertt/leetcode-py/blob/main/CONTRIBUTING.md)
|
|
86
|
+
**Coverage**: 300+ unique problems across all major coding interview topics and difficulty levels. All problem sets are complete. [Contributions welcome!](https://github.com/wislertt/leetcode-py/blob/main/CONTRIBUTING.md)
|
|
88
87
|
|
|
89
88
|
## <a id="quick-start"></a>🚀 Quick Start
|
|
90
89
|
|
|
@@ -100,7 +99,7 @@ pip install leetcode-py-sdk
|
|
|
100
99
|
# Generate problems anywhere
|
|
101
100
|
lcpy gen -n 1 # Generate Two Sum
|
|
102
101
|
lcpy gen -t grind-75 # Generate all Grind 75 problems
|
|
103
|
-
lcpy gen -t neetcode-
|
|
102
|
+
lcpy gen -t neetcode-250 # Generate NeetCode 250 problems
|
|
104
103
|
lcpy list -t grind-75 # List Grind 75 problems
|
|
105
104
|
lcpy list -t blind-75 # List Blind 75 problems
|
|
106
105
|
|
|
@@ -114,7 +113,7 @@ python -m pytest test_solution.py # Run tests
|
|
|
114
113
|
|
|
115
114
|
```bash
|
|
116
115
|
lcpy gen --problem-tag grind-75 --output leetcode # Generate all Grind 75 problems
|
|
117
|
-
lcpy gen --problem-tag neetcode-
|
|
116
|
+
lcpy gen --problem-tag neetcode-250 --output leetcode # Generate NeetCode 250 problems
|
|
118
117
|
lcpy gen --problem-tag blind-75 --output leetcode # Generate Blind 75 problems
|
|
119
118
|
```
|
|
120
119
|
|
|
@@ -304,7 +303,7 @@ uv run python -m leetcode_py.tools.check_test_cases --threshold=10
|
|
|
304
303
|
lcpy gen -n 1 # Single problem by number
|
|
305
304
|
lcpy gen -s two-sum # Single problem by slug
|
|
306
305
|
lcpy gen -t grind-75 # Bulk generation by tag
|
|
307
|
-
lcpy gen -t neetcode-
|
|
306
|
+
lcpy gen -t neetcode-250 # Generate NeetCode 250 problems
|
|
308
307
|
lcpy gen -n 1 -n 2 -n 3 # Multiple problems
|
|
309
308
|
lcpy gen -t grind-75 -d Easy # Filter by difficulty
|
|
310
309
|
lcpy gen -n 1 -o my-problems # Custom output directory
|
|
@@ -313,7 +312,7 @@ lcpy gen -n 1 -o my-problems # Custom output directory
|
|
|
313
312
|
lcpy list # All available problems
|
|
314
313
|
lcpy list -t grind-75 # Filter by Grind 75 tag
|
|
315
314
|
lcpy list -t blind-75 # Filter by Blind 75 tag
|
|
316
|
-
lcpy list -t neetcode-
|
|
315
|
+
lcpy list -t neetcode-250 # Filter by NeetCode 250 tag
|
|
317
316
|
lcpy list -d Medium # Filter by difficulty
|
|
318
317
|
|
|
319
318
|
# Scrape problem data
|
|
@@ -41,14 +41,13 @@ A Python package to generate professional LeetCode practice environments. Featur
|
|
|
41
41
|
**Current Problem Sets**:
|
|
42
42
|
|
|
43
43
|
- **grind-75** - Essential coding interview questions from [Grind 75](https://www.techinterviewhandbook.org/grind75/) ✅ Complete
|
|
44
|
-
- **grind** - Extended Grind collection including all Grind 75 plus additional problems
|
|
44
|
+
- **grind** - Extended Grind collection including all Grind 75 plus additional problems ✅ Complete
|
|
45
45
|
- **blind-75** - Original [Blind 75](https://leetcode.com/problem-list/xi4ci4ig/) curated list ✅ Complete
|
|
46
46
|
- **neetcode-150** - Comprehensive [NeetCode 150](https://neetcode.io/practice) problem set ✅ Complete
|
|
47
|
+
- **neetcode-250** - Full [NeetCode 250](https://neetcode.io/practice) roadmap extending NeetCode 150 with 100 more problems ✅ Complete
|
|
47
48
|
- **algo-master-75** - Curated algorithmic mastery problems ✅ Complete
|
|
48
49
|
|
|
49
|
-
**Coverage**:
|
|
50
|
-
|
|
51
|
-
**Note**: Some problem sets are partially covered. We're actively working to complete all collections. [Contributions welcome!](https://github.com/wislertt/leetcode-py/blob/main/CONTRIBUTING.md)
|
|
50
|
+
**Coverage**: 300+ unique problems across all major coding interview topics and difficulty levels. All problem sets are complete. [Contributions welcome!](https://github.com/wislertt/leetcode-py/blob/main/CONTRIBUTING.md)
|
|
52
51
|
|
|
53
52
|
## <a id="quick-start"></a>🚀 Quick Start
|
|
54
53
|
|
|
@@ -64,7 +63,7 @@ pip install leetcode-py-sdk
|
|
|
64
63
|
# Generate problems anywhere
|
|
65
64
|
lcpy gen -n 1 # Generate Two Sum
|
|
66
65
|
lcpy gen -t grind-75 # Generate all Grind 75 problems
|
|
67
|
-
lcpy gen -t neetcode-
|
|
66
|
+
lcpy gen -t neetcode-250 # Generate NeetCode 250 problems
|
|
68
67
|
lcpy list -t grind-75 # List Grind 75 problems
|
|
69
68
|
lcpy list -t blind-75 # List Blind 75 problems
|
|
70
69
|
|
|
@@ -78,7 +77,7 @@ python -m pytest test_solution.py # Run tests
|
|
|
78
77
|
|
|
79
78
|
```bash
|
|
80
79
|
lcpy gen --problem-tag grind-75 --output leetcode # Generate all Grind 75 problems
|
|
81
|
-
lcpy gen --problem-tag neetcode-
|
|
80
|
+
lcpy gen --problem-tag neetcode-250 --output leetcode # Generate NeetCode 250 problems
|
|
82
81
|
lcpy gen --problem-tag blind-75 --output leetcode # Generate Blind 75 problems
|
|
83
82
|
```
|
|
84
83
|
|
|
@@ -268,7 +267,7 @@ uv run python -m leetcode_py.tools.check_test_cases --threshold=10
|
|
|
268
267
|
lcpy gen -n 1 # Single problem by number
|
|
269
268
|
lcpy gen -s two-sum # Single problem by slug
|
|
270
269
|
lcpy gen -t grind-75 # Bulk generation by tag
|
|
271
|
-
lcpy gen -t neetcode-
|
|
270
|
+
lcpy gen -t neetcode-250 # Generate NeetCode 250 problems
|
|
272
271
|
lcpy gen -n 1 -n 2 -n 3 # Multiple problems
|
|
273
272
|
lcpy gen -t grind-75 -d Easy # Filter by difficulty
|
|
274
273
|
lcpy gen -n 1 -o my-problems # Custom output directory
|
|
@@ -277,7 +276,7 @@ lcpy gen -n 1 -o my-problems # Custom output directory
|
|
|
277
276
|
lcpy list # All available problems
|
|
278
277
|
lcpy list -t grind-75 # Filter by Grind 75 tag
|
|
279
278
|
lcpy list -t blind-75 # Filter by Blind 75 tag
|
|
280
|
-
lcpy list -t neetcode-
|
|
279
|
+
lcpy list -t neetcode-250 # Filter by NeetCode 250 tag
|
|
281
280
|
lcpy list -d Medium # Filter by difficulty
|
|
282
281
|
|
|
283
282
|
# Scrape problem data
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "leetcode-py-sdk"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "1.0.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"}
|
|
@@ -10,7 +10,7 @@ readme = "README.md"
|
|
|
10
10
|
requires-python = ">=3.10"
|
|
11
11
|
keywords = ["algorithms", "coding-practice", "data-structures", "interview-prep", "leetcode"]
|
|
12
12
|
classifiers = [
|
|
13
|
-
"Development Status ::
|
|
13
|
+
"Development Status :: 5 - Production/Stable",
|
|
14
14
|
"Intended Audience :: Developers",
|
|
15
15
|
"Intended Audience :: Education",
|
|
16
16
|
"License :: OSI Approved :: Apache Software License",
|
|
@@ -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.
|
|
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,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"problem_name": "all_nodes_distance_k_in_binary_tree",
|
|
3
|
+
"solution_class_name": "Solution",
|
|
4
|
+
"problem_number": "863",
|
|
5
|
+
"problem_title": "All Nodes Distance K in Binary Tree",
|
|
6
|
+
"difficulty": "Medium",
|
|
7
|
+
"topics": "Hash Table, Tree, Depth-First Search, Breadth-First Search, Binary Tree",
|
|
8
|
+
"_tags": { "list": ["grind"] },
|
|
9
|
+
"readme_description": "Given the `root` of a binary tree, the value of a target node `target`, and an integer `k`, return an array of the values of all nodes that have a distance `k` from the target node.\n\nThe value of `target` is given as an integer (all node values are unique). You can return the answer in any order.",
|
|
10
|
+
"_readme_examples": {
|
|
11
|
+
"list": [
|
|
12
|
+
{
|
|
13
|
+
"content": "\n\n```\nInput: root = [3,5,1,6,2,0,8,null,null,7,4], target = 5, k = 2\nOutput: [7,4,1]\nExplanation: The nodes that are a distance 2 from the target node (with value 5) have values 7, 4, and 1.\n```"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"content": "```\nInput: root = [1], target = 1, k = 3\nOutput: []\n```"
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
"readme_constraints": "- The number of nodes in the tree is in the range [1, 500].\n- 0 <= Node.val <= 500\n- All the values `Node.val` are **unique**.\n- `target` is the value of one of the nodes in the tree.\n- 0 <= k <= 1000",
|
|
21
|
+
"readme_additional": "",
|
|
22
|
+
"helpers_imports": "from leetcode_py import TreeNode",
|
|
23
|
+
"helpers_content": "",
|
|
24
|
+
"helpers_run_name": "distance_k",
|
|
25
|
+
"helpers_run_signature": "(solution_class: type, root_list: list[int | None], target: int, k: int)",
|
|
26
|
+
"helpers_run_body": " root = TreeNode[int].from_list(root_list)\n implementation = solution_class()\n return implementation.distance_k(root, target, k)",
|
|
27
|
+
"helpers_assert_name": "distance_k",
|
|
28
|
+
"helpers_assert_signature": "(result: list[int], expected: list[int]) -> bool",
|
|
29
|
+
"helpers_assert_body": " # Order does not matter; sort both sides for comparison\n assert sorted(result) == sorted(expected)\n return True",
|
|
30
|
+
"solution_imports": "from collections import deque\n\nfrom leetcode_py import TreeNode",
|
|
31
|
+
"solution_contents": "",
|
|
32
|
+
"solution_class_content": "",
|
|
33
|
+
"test_imports": "import pytest\nfrom leetcode_py import logged_test\nfrom .helpers import assert_distance_k, run_distance_k\nfrom .solution import Solution",
|
|
34
|
+
"test_content": "",
|
|
35
|
+
"test_class_name": "AllNodesDistanceKInBinaryTree",
|
|
36
|
+
"test_class_content": " def setup_method(self):\n self.solution = Solution()",
|
|
37
|
+
"_solution_methods": {
|
|
38
|
+
"list": [
|
|
39
|
+
{
|
|
40
|
+
"name": "distance_k",
|
|
41
|
+
"signature": "(self, root: TreeNode[int] | None, target: int, k: int) -> list[int]",
|
|
42
|
+
"body": " # TODO: Implement distance_k\n return []"
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"_test_helper_methods": {
|
|
47
|
+
"list": [{ "name": "setup_method", "parameters": "", "body": "self.solution = Solution()" }]
|
|
48
|
+
},
|
|
49
|
+
"_test_methods": {
|
|
50
|
+
"list": [
|
|
51
|
+
{
|
|
52
|
+
"name": "test_distance_k",
|
|
53
|
+
"signature": "(self, root_list: list[int | None], target: int, k: int, expected: list[int])",
|
|
54
|
+
"parametrize": "root_list, target, k, expected",
|
|
55
|
+
"test_cases": {
|
|
56
|
+
"list": [
|
|
57
|
+
"([3, 5, 1, 6, 2, 0, 8, None, None, 7, 4], 5, 2, [7, 4, 1])",
|
|
58
|
+
"([1], 1, 3, [])",
|
|
59
|
+
"([1], 1, 0, [1])",
|
|
60
|
+
"([3, 5, 1, 6, 2, 0, 8, None, None, 7, 4], 5, 0, [5])",
|
|
61
|
+
"([3, 5, 1, 6, 2, 0, 8, None, None, 7, 4], 3, 1, [5, 1])",
|
|
62
|
+
"([3, 5, 1, 6, 2, 0, 8, None, None, 7, 4], 3, 2, [6, 2, 0, 8])",
|
|
63
|
+
"([1, 2, 3, 4, 5], 2, 2, [3])",
|
|
64
|
+
"([1, 2, 3, 4, 5], 4, 1, [2])",
|
|
65
|
+
"([1, 2, 3, 4, 5], 4, 2, [1, 5])",
|
|
66
|
+
"([1, 2], 1, 1, [2])",
|
|
67
|
+
"([1, 2], 2, 1, [1])",
|
|
68
|
+
"([1, 2, 3], 2, 2, [3])",
|
|
69
|
+
"([1, None, 2, None, 3], 1, 1, [2])",
|
|
70
|
+
"([3, 5, 1, 6, 2, 0, 8, None, None, 7, 4], 7, 3, [3, 6])",
|
|
71
|
+
"([1, 2, 3, 4, 5, 6, 7], 3, 3, [4, 5])"
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
"body": " result = run_distance_k(Solution, root_list, target, k)\n assert_distance_k(result, expected)"
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
},
|
|
78
|
+
"playground_imports": "from helpers import run_distance_k, assert_distance_k\nfrom solution import Solution",
|
|
79
|
+
"playground_setup": "# Example test case\nroot_list: list[int | None] = [3, 5, 1, 6, 2, 0, 8, None, None, 7, 4]\ntarget = 5\nk = 2\nexpected = [7, 4, 1]",
|
|
80
|
+
"playground_run": "result = run_distance_k(Solution, root_list, target, k)\nresult",
|
|
81
|
+
"playground_assert": "assert_distance_k(result, expected)"
|
|
82
|
+
}
|
leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/asteroid_collision.json
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
{
|
|
2
|
+
"problem_name": "asteroid_collision",
|
|
3
|
+
"solution_class_name": "Solution",
|
|
4
|
+
"problem_number": "735",
|
|
5
|
+
"problem_title": "Asteroid Collision",
|
|
6
|
+
"difficulty": "Medium",
|
|
7
|
+
"topics": "Array, Stack, Simulation",
|
|
8
|
+
"_tags": { "list": ["grind"] },
|
|
9
|
+
"readme_description": "We are given an array `asteroids` of integers representing asteroids in a row. The indices of the asteroid in the array represent their relative position in space.\n\nFor each asteroid, the absolute value represents its size, and the sign represents its direction (positive meaning right, negative meaning left). Each asteroid moves at the same speed.\n\nFind out the state of the asteroids after all collisions. If two asteroids meet, the smaller one will explode. If both are the same size, both will explode. Two asteroids moving in the same direction, or two moving away from each other, will never meet.",
|
|
10
|
+
"_readme_examples": {
|
|
11
|
+
"list": [
|
|
12
|
+
{
|
|
13
|
+
"content": "```\nInput: asteroids = [5,10,-5]\nOutput: [5,10]\nExplanation: The 10 and -5 collide resulting in 10. The 5 and 10 never collide.\n```"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"content": "```\nInput: asteroids = [8,-8]\nOutput: []\nExplanation: The 8 and -8 collide exploding each other.\n```"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"content": "```\nInput: asteroids = [10,2,-5]\nOutput: [10]\nExplanation: The 2 and -5 collide resulting in -5. The 10 and -5 collide resulting in 10.\n```"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"content": "```\nInput: asteroids = [3,5,-6,2,-1,4]\nOutput: [-6,2,4]\nExplanation: The asteroid -6 makes the asteroid 3 and 5 explode, and then continues going left. On the other side, the asteroid 2 destroys -1. Since 2 and 4 are both moving right, they never collide.\n```"
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
"readme_constraints": "- 2 <= asteroids.length <= 10^4\n- -1000 <= asteroids[i] <= 1000\n- `asteroids[i] != 0`",
|
|
27
|
+
"readme_additional": "",
|
|
28
|
+
"helpers_imports": "",
|
|
29
|
+
"helpers_content": "",
|
|
30
|
+
"helpers_run_name": "asteroid_collision",
|
|
31
|
+
"helpers_run_signature": "(solution_class: type, asteroids: list[int])",
|
|
32
|
+
"helpers_run_body": " implementation = solution_class()\n return implementation.asteroid_collision(asteroids)",
|
|
33
|
+
"helpers_assert_name": "asteroid_collision",
|
|
34
|
+
"helpers_assert_signature": "(result: list[int], expected: list[int]) -> bool",
|
|
35
|
+
"helpers_assert_body": " assert result == expected\n return True",
|
|
36
|
+
"solution_imports": "",
|
|
37
|
+
"solution_contents": "",
|
|
38
|
+
"solution_class_content": "",
|
|
39
|
+
"test_imports": "import pytest\nfrom leetcode_py import logged_test\nfrom .helpers import assert_asteroid_collision, run_asteroid_collision\nfrom .solution import Solution",
|
|
40
|
+
"test_content": "",
|
|
41
|
+
"test_class_name": "AsteroidCollision",
|
|
42
|
+
"test_class_content": " def setup_method(self):\n self.solution = Solution()",
|
|
43
|
+
"_solution_methods": {
|
|
44
|
+
"list": [
|
|
45
|
+
{
|
|
46
|
+
"name": "asteroid_collision",
|
|
47
|
+
"signature": "(self, asteroids: list[int]) -> list[int]",
|
|
48
|
+
"body": " # TODO: Implement asteroid_collision\n return []"
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
"_test_helper_methods": {
|
|
53
|
+
"list": [{ "name": "setup_method", "parameters": "", "body": "self.solution = Solution()" }]
|
|
54
|
+
},
|
|
55
|
+
"_test_methods": {
|
|
56
|
+
"list": [
|
|
57
|
+
{
|
|
58
|
+
"name": "test_asteroid_collision",
|
|
59
|
+
"signature": "(self, asteroids: list[int], expected: list[int])",
|
|
60
|
+
"parametrize": "asteroids, expected",
|
|
61
|
+
"test_cases": {
|
|
62
|
+
"list": [
|
|
63
|
+
"([5, 10, -5], [5, 10])",
|
|
64
|
+
"([8, -8], [])",
|
|
65
|
+
"([10, 2, -5], [10])",
|
|
66
|
+
"([3, 5, -6, 2, -1, 4], [-6, 2, 4])",
|
|
67
|
+
"([-2, -1, 1, 2], [-2, -1, 1, 2])",
|
|
68
|
+
"([1, 2, 3, 4], [1, 2, 3, 4])",
|
|
69
|
+
"([-1, -2, -3], [-1, -2, -3])",
|
|
70
|
+
"([5, 5, -5], [5])",
|
|
71
|
+
"([5, 10, -5, -10], [5])",
|
|
72
|
+
"([10, 5, -5], [10])",
|
|
73
|
+
"([-2, 2, -1, -2], [-2])",
|
|
74
|
+
"([1, -2, -3], [-2, -3])",
|
|
75
|
+
"([2, -1, -2], [])",
|
|
76
|
+
"([5, -5], [])",
|
|
77
|
+
"([-1, 5, -5, 1], [-1, 1])"
|
|
78
|
+
]
|
|
79
|
+
},
|
|
80
|
+
"body": " result = run_asteroid_collision(Solution, asteroids)\n assert_asteroid_collision(result, expected)"
|
|
81
|
+
}
|
|
82
|
+
]
|
|
83
|
+
},
|
|
84
|
+
"playground_imports": "from helpers import run_asteroid_collision, assert_asteroid_collision\nfrom solution import Solution",
|
|
85
|
+
"playground_setup": "# Example test case\nasteroids = [5, 10, -5]\nexpected = [5, 10]",
|
|
86
|
+
"playground_run": "result = run_asteroid_collision(Solution, asteroids)\nresult",
|
|
87
|
+
"playground_assert": "assert_asteroid_collision(result, expected)"
|
|
88
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"problem_name": "backspace_string_compare",
|
|
3
|
+
"solution_class_name": "Solution",
|
|
4
|
+
"problem_number": "844",
|
|
5
|
+
"problem_title": "Backspace String Compare",
|
|
6
|
+
"difficulty": "Easy",
|
|
7
|
+
"topics": "Two Pointers, String, Stack, Simulation",
|
|
8
|
+
"_tags": { "list": ["grind"] },
|
|
9
|
+
"readme_description": "Given two strings `s` and `t`, return `true` if they are equal when both are typed into empty text editors. `'#'` means a backspace character.\n\nNote that after backspacing an empty text, the text will continue empty.",
|
|
10
|
+
"_readme_examples": {
|
|
11
|
+
"list": [
|
|
12
|
+
{
|
|
13
|
+
"content": "```\nInput: s = \"ab#c\", t = \"ad#c\"\nOutput: true\nExplanation: Both s and t become \"ac\".\n```"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"content": "```\nInput: s = \"ab##\", t = \"c#d#\"\nOutput: true\nExplanation: Both s and t become \"\".\n```"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"content": "```\nInput: s = \"a#c\", t = \"b\"\nOutput: false\nExplanation: s becomes \"c\" while t becomes \"b\".\n```"
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"readme_constraints": "- 1 <= s.length, t.length <= 200\n- `s` and `t` only contain lowercase letters and `'#'` characters.",
|
|
24
|
+
"readme_additional": "**Follow up:** Can you solve it in `O(n)` time and `O(1)` space?",
|
|
25
|
+
"helpers_imports": "",
|
|
26
|
+
"helpers_content": "",
|
|
27
|
+
"helpers_run_name": "backspace_compare",
|
|
28
|
+
"helpers_run_signature": "(solution_class: type, s: str, t: str)",
|
|
29
|
+
"helpers_run_body": " implementation = solution_class()\n return implementation.backspace_compare(s, t)",
|
|
30
|
+
"helpers_assert_name": "backspace_compare",
|
|
31
|
+
"helpers_assert_signature": "(result: bool, expected: bool) -> bool",
|
|
32
|
+
"helpers_assert_body": " assert result == expected\n return True",
|
|
33
|
+
"solution_imports": "",
|
|
34
|
+
"solution_contents": "",
|
|
35
|
+
"solution_class_content": "",
|
|
36
|
+
"test_imports": "import pytest\nfrom leetcode_py import logged_test\nfrom .helpers import assert_backspace_compare, run_backspace_compare\nfrom .solution import Solution",
|
|
37
|
+
"test_content": "",
|
|
38
|
+
"test_class_name": "BackspaceStringCompare",
|
|
39
|
+
"test_class_content": " def setup_method(self):\n self.solution = Solution()",
|
|
40
|
+
"_solution_methods": {
|
|
41
|
+
"list": [
|
|
42
|
+
{
|
|
43
|
+
"name": "backspace_compare",
|
|
44
|
+
"signature": "(self, s: str, t: str) -> bool",
|
|
45
|
+
"body": " # TODO: Implement backspace_compare\n return False"
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
"_test_helper_methods": {
|
|
50
|
+
"list": [{ "name": "setup_method", "parameters": "", "body": "self.solution = Solution()" }]
|
|
51
|
+
},
|
|
52
|
+
"_test_methods": {
|
|
53
|
+
"list": [
|
|
54
|
+
{
|
|
55
|
+
"name": "test_backspace_compare",
|
|
56
|
+
"signature": "(self, s: str, t: str, expected: bool)",
|
|
57
|
+
"parametrize": "s, t, expected",
|
|
58
|
+
"test_cases": {
|
|
59
|
+
"list": [
|
|
60
|
+
"('ab#c', 'ad#c', True)",
|
|
61
|
+
"('ab##', 'c#d#', True)",
|
|
62
|
+
"('a#c', 'b', False)",
|
|
63
|
+
"('a', 'a', True)",
|
|
64
|
+
"('#', '#', True)",
|
|
65
|
+
"('a#', '', True)",
|
|
66
|
+
"('a#b', 'b', True)",
|
|
67
|
+
"('###', '', True)",
|
|
68
|
+
"('a##c', '#a#c', True)",
|
|
69
|
+
"('xywrrmp', 'xywrrmu#p', True)",
|
|
70
|
+
"('c##vnvr', 'vnvr', True)",
|
|
71
|
+
"('nzp#o', 'b#nzp#o', True)",
|
|
72
|
+
"('abc', 'abc', True)",
|
|
73
|
+
"('a', 'b', False)",
|
|
74
|
+
"('ab#c', 'ad#d', False)"
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
"body": " result = run_backspace_compare(Solution, s, t)\n assert_backspace_compare(result, expected)"
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
"playground_imports": "from helpers import run_backspace_compare, assert_backspace_compare\nfrom solution import Solution",
|
|
82
|
+
"playground_setup": "# Example test case\ns = 'ab#c'\nt = 'ad#c'\nexpected = True",
|
|
83
|
+
"playground_run": "result = run_backspace_compare(Solution, s, t)\nresult",
|
|
84
|
+
"playground_assert": "assert_backspace_compare(result, expected)"
|
|
85
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"problem_name": "baseball_game",
|
|
3
|
+
"solution_class_name": "Solution",
|
|
4
|
+
"problem_number": "682",
|
|
5
|
+
"problem_title": "Baseball Game",
|
|
6
|
+
"difficulty": "Easy",
|
|
7
|
+
"topics": "Array, Stack, Simulation",
|
|
8
|
+
"_tags": { "list": ["neetcode-250"] },
|
|
9
|
+
"readme_description": "You are keeping the scores for a baseball game with strange rules. At the beginning of the game, you start with an empty record.\n\nYou are given a list of strings `operations`, where `operations[i]` is the `ith` operation you must apply to the record and is one of the following:\n\n- An integer `x`.\n - Record a new score of `x`.\n- `'+'`.\n - Record a new score that is the sum of the previous two scores.\n- `'D'`.\n - Record a new score that is the double of the previous score.\n- `'C'`.\n - Invalidate the previous score, removing it from the record.\n\nReturn the sum of all the scores on the record after applying all the operations.\n\nThe test cases are generated such that the answer and all intermediate calculations fit in a **32-bit** integer and that all operations are valid.",
|
|
10
|
+
"_readme_examples": {
|
|
11
|
+
"list": [
|
|
12
|
+
{
|
|
13
|
+
"content": "```\nInput: ops = [\"5\",\"2\",\"C\",\"D\",\"+\"]\nOutput: 30\nExplanation:\n\"5\" - Add 5 to the record, record is now [5].\n\"2\" - Add 2 to the record, record is now [5, 2].\n\"C\" - Invalidate and remove the previous score, record is now [5].\n\"D\" - Add 2 * 5 = 10 to the record, record is now [5, 10].\n\"+\" - Add 5 + 10 = 15 to the record, record is now [5, 10, 15].\nThe total sum is 5 + 10 + 15 = 30.\n```"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"content": "```\nInput: ops = [\"5\",\"-2\",\"4\",\"C\",\"D\",\"9\",\"+\",\"+\"]\nOutput: 27\n```"
|
|
17
|
+
},
|
|
18
|
+
{ "content": "```\nInput: ops = [\"1\",\"C\"]\nOutput: 0\n```" }
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
"readme_constraints": "- 1 <= operations.length <= 1000\n- `operations[i]` is `\"C\"`, `\"D\"`, `\"+\"`, or a string representing an integer in the range [-3 * 10^4, 3 * 10^4].\n- For operation `\"+\"`, there will always be at least two previous scores on the record.\n- For operations `\"C\"` and `\"D\"`, there will always be at least one previous score on the record.",
|
|
22
|
+
"readme_additional": "",
|
|
23
|
+
"helpers_imports": "",
|
|
24
|
+
"helpers_content": "",
|
|
25
|
+
"helpers_run_name": "cal_points",
|
|
26
|
+
"helpers_run_signature": "(solution_class: type, operations: list[str])",
|
|
27
|
+
"helpers_run_body": " implementation = solution_class()\n return implementation.cal_points(operations)",
|
|
28
|
+
"helpers_assert_name": "cal_points",
|
|
29
|
+
"helpers_assert_signature": "(result: int, expected: int) -> bool",
|
|
30
|
+
"helpers_assert_body": " assert result == expected\n return True",
|
|
31
|
+
"solution_imports": "",
|
|
32
|
+
"solution_contents": "",
|
|
33
|
+
"solution_class_content": "",
|
|
34
|
+
"test_imports": "import pytest\nfrom leetcode_py import logged_test\nfrom .helpers import assert_cal_points, run_cal_points\nfrom .solution import Solution",
|
|
35
|
+
"test_content": "",
|
|
36
|
+
"test_class_name": "BaseballGame",
|
|
37
|
+
"test_class_content": " def setup_method(self):\n self.solution = Solution()",
|
|
38
|
+
"_solution_methods": {
|
|
39
|
+
"list": [
|
|
40
|
+
{
|
|
41
|
+
"name": "cal_points",
|
|
42
|
+
"signature": "(self, operations: list[str]) -> int",
|
|
43
|
+
"body": " # TODO: Implement cal_points\n return 0"
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
"_test_helper_methods": {
|
|
48
|
+
"list": [{ "name": "setup_method", "parameters": "", "body": "self.solution = Solution()" }]
|
|
49
|
+
},
|
|
50
|
+
"_test_methods": {
|
|
51
|
+
"list": [
|
|
52
|
+
{
|
|
53
|
+
"name": "test_cal_points",
|
|
54
|
+
"signature": "(self, operations: list[str], expected: int)",
|
|
55
|
+
"parametrize": "operations, expected",
|
|
56
|
+
"test_cases": {
|
|
57
|
+
"list": [
|
|
58
|
+
"(['5', '2', 'C', 'D', '+'], 30)",
|
|
59
|
+
"(['5', '-2', '4', 'C', 'D', '9', '+', '+'], 27)",
|
|
60
|
+
"(['1', 'C'], 0)",
|
|
61
|
+
"(['5'], 5)",
|
|
62
|
+
"(['1', '2', '3'], 6)",
|
|
63
|
+
"(['1', '2', '+', '+'], 11)",
|
|
64
|
+
"(['1', 'D', 'D'], 7)",
|
|
65
|
+
"(['-1', 'D', '+'], -6)",
|
|
66
|
+
"(['10', '20', 'C', 'C', '5'], 5)",
|
|
67
|
+
"(['1', '2', '3', 'C', 'C', 'C'], 0)",
|
|
68
|
+
"(['100', 'D', '+', 'C'], 300)",
|
|
69
|
+
"(['0', '0', '0', '+'], 0)",
|
|
70
|
+
"(['-5', 'D'], -15)",
|
|
71
|
+
"(['1', '2', 'D', '+', 'C'], 7)"
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
"body": " result = run_cal_points(Solution, operations)\n assert_cal_points(result, expected)"
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
},
|
|
78
|
+
"playground_imports": "from helpers import run_cal_points, assert_cal_points\nfrom solution import Solution",
|
|
79
|
+
"playground_setup": "# Example test case\noperations = ['5', '2', 'C', 'D', '+']\nexpected = 30",
|
|
80
|
+
"playground_run": "result = run_cal_points(Solution, operations)\nresult",
|
|
81
|
+
"playground_assert": "assert_cal_points(result, expected)"
|
|
82
|
+
}
|
leetcode_py_sdk-1.0.0/src/leetcode_py/cli/resources/leetcode/json/problems/basic_calculator_ii.json
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"problem_name": "basic_calculator_ii",
|
|
3
|
+
"solution_class_name": "Solution",
|
|
4
|
+
"problem_number": "227",
|
|
5
|
+
"problem_title": "Basic Calculator II",
|
|
6
|
+
"difficulty": "Medium",
|
|
7
|
+
"topics": "Math, String, Stack",
|
|
8
|
+
"_tags": {
|
|
9
|
+
"list": ["grind"]
|
|
10
|
+
},
|
|
11
|
+
"readme_description": "Given a string `s` which represents an expression, evaluate this expression and return its value.\n\nThe integer division should truncate toward zero.\n\nYou may assume that the given expression is always valid. All intermediate results will be in the range of [-2^31, 2^31 - 1].\n\n**Note:** You are not allowed to use any built-in function which evaluates strings as mathematical expressions, such as `eval()`.",
|
|
12
|
+
"_readme_examples": {
|
|
13
|
+
"list": [
|
|
14
|
+
{
|
|
15
|
+
"content": "```\nInput: s = \"3+2*2\"\nOutput: 7\n```"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"content": "```\nInput: s = \" 3/2 \"\nOutput: 1\n```"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"content": "```\nInput: s = \" 3+5 / 2 \"\nOutput: 5\n```"
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"readme_constraints": "- 1 <= s.length <= 3 * 10^5\n- s consists of integers and operators ('+', '-', '*', '/') separated by some number of spaces.\n- s represents a valid expression.\n- All the integers in the expression are non-negative integers in the range [0, 2^31 - 1].\n- The answer is guaranteed to fit in a 32-bit integer.",
|
|
26
|
+
"readme_additional": "",
|
|
27
|
+
"helpers_imports": "",
|
|
28
|
+
"helpers_content": "",
|
|
29
|
+
"helpers_run_name": "calculate",
|
|
30
|
+
"helpers_run_signature": "(solution_class: type, s: str)",
|
|
31
|
+
"helpers_run_body": " implementation = solution_class()\n return implementation.calculate(s)",
|
|
32
|
+
"helpers_assert_name": "calculate",
|
|
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_calculate, run_calculate\nfrom .solution import Solution",
|
|
39
|
+
"test_content": "",
|
|
40
|
+
"test_class_name": "BasicCalculatorII",
|
|
41
|
+
"test_class_content": " def setup_method(self):\n self.solution = Solution()",
|
|
42
|
+
"_solution_methods": {
|
|
43
|
+
"list": [
|
|
44
|
+
{
|
|
45
|
+
"name": "calculate",
|
|
46
|
+
"signature": "(self, s: str) -> int",
|
|
47
|
+
"body": " # TODO: Implement calculate\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_calculate",
|
|
64
|
+
"signature": "(self, s: str, expected: int)",
|
|
65
|
+
"parametrize": "s, expected",
|
|
66
|
+
"test_cases": {
|
|
67
|
+
"list": [
|
|
68
|
+
"('3+2*2', 7)",
|
|
69
|
+
"(' 3/2 ', 1)",
|
|
70
|
+
"(' 3+5 / 2 ', 5)",
|
|
71
|
+
"('1+1', 2)",
|
|
72
|
+
"('1-1', 0)",
|
|
73
|
+
"('2*3+4', 10)",
|
|
74
|
+
"('10/2', 5)",
|
|
75
|
+
"('14-3/2', 13)",
|
|
76
|
+
"('0', 0)",
|
|
77
|
+
"('100000000/1/1', 100000000)",
|
|
78
|
+
"('1*2*3*4*5', 120)",
|
|
79
|
+
"('3+2*2*2', 11)",
|
|
80
|
+
"(' 5 ', 5)",
|
|
81
|
+
"('1-1+1', 1)",
|
|
82
|
+
"('2/3', 0)",
|
|
83
|
+
"('100-10-10', 80)"
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
"body": " result = run_calculate(Solution, s)\n assert_calculate(result, expected)"
|
|
87
|
+
}
|
|
88
|
+
]
|
|
89
|
+
},
|
|
90
|
+
"playground_imports": "from helpers import run_calculate, assert_calculate\nfrom solution import Solution",
|
|
91
|
+
"playground_setup": "# Example test case\ns = '3+2*2'\nexpected = 7",
|
|
92
|
+
"playground_run": "result = run_calculate(Solution, s)\nresult",
|
|
93
|
+
"playground_assert": "assert_calculate(result, expected)"
|
|
94
|
+
}
|