Pythonic Data Structures and Algorithms Minimal and clean example implementations of data structures and algorithms in Python. List of Implementations array circular_counter flatten garage longest_non_repeat merge_intervals missing_ranges plus_one rotate_array summary_ranges three_sum two_sum backtrack general_solution.md anagram array_sum_combinations combination_sum expression_add_operators factor_combinations generate_abbreviations generate_parenthesis letter_combination palindrome_partitioning pattern_match permute permute_unique subsets subsets_unique bfs shortest_distance_from_all_buildings word_ladder bit count_ones power_of_two reverse_bits single_number2 single_number subsets dfs all_factors count_islands pacific_atlantic sudoku_solver walls_and_gates dp buy_sell_stock climbing_stairs combination_sum house_robber longest_increasing max_product_subarray max_subarray num_decodings regex_matching word_break graph clone_graph find_path graph traversal heap merge_sorted_k_lists skyline sliding_window_max linkedlist add_two_numbers copy_random_pointer delete_node first_cyclic_node is_cyclic is_palindrome kth_to_last linkedlist remove_duplicates reverse rotate_list swap_in_pairs map hashtable longest_common_subsequence randomized_set valid_sudoku math extended_gcd gcd prime_test primes_sieve_of_eratosthenes generate_strobogrammtic is_strobogrammatic nth_digit rabin_miller rsa sqrt_precision_factor pythagoras matrix matrix_rotation.txt bomb_enemy rotate_image sparse_dot_vector sparse_mul spiral_traversal queue max_sliding_window moving_average queue reconstruct_queue zigzagiterator search binary_search count_elem first_occurance last_occurance set randomized_set sort insertion_sort meeting_rooms merge_sort quick_sort selection_sort sort_colors topsort wiggle_sort stack longest_abs_path simplify_path stack valid_parenthesis string add_binary breaking_bad decode_string encode_decode group_anagrams int_to_roman is_palindrome license_number make_sentence multiply_strings one_edit_distance rabin_karp reverse_string reverse_vowel reverse_words roman_to_int word_squares tree segment-tree segment_tree binary_tree_paths bintree2list bst array2bst bst_closest_value BSTIterator delete_node is_bst kth_smallest lowest_common_ancestor predecessor serialize_deserialize successor unique_bst deepest_left invert_tree is_balanced is_subtree is_symmetric longest_consecutive lowest_common_ancestor max_height max_path_sum min_height path_sum2 path_sum pretty_print same_tree traversal inorder level_order zigzag tree trie add_and_search trie union-find count_islands List of Designs design alarm_system all_o_one_ds calculator excel_table LRUcache nearby_drivers ride_sharing task_runner twitter_feeds