Minimal and clean example implementations of data structures and algorithms in Python 3.
For running all tests write down:
$ python3 -m unittest discover tests
For running some specific tests you can do this as following (Ex: sort):
$ python3 -m unittest tests.test_sort
For running all tests write down:
$ python3 -m pytest tests
If you want to use the API algorithms in your code, it is as simple as:
$ pip3 install algorithms
You can test by creating a python file: (Ex: use merge_sort
in sort
)
from algorithms.sort import merge_sort
if __name__ == "__main__":
my_list = [1, 8, 3, 5, 6]
my_list = merge_sort(my_list)
print(my_list)
If you want to uninstall algorithms, it is as simple as:
$ pip3 uninstall -y algorithms
- arrays
- greedy
- automata
- backtrack
- bfs
- bit
- compression
- dfs
- distribution
- dp
- buy_sell_stock
- climbing_stairs
- coin_change
- combination_sum
- egg_drop
- house_robber
- int_divide
- job_scheduling
- knapsack
- longest_increasing
- matrix_chain_order
- max_product_subarray
- max_subarray
- min_cost_path
- num_decodings
- regex_matching
- rod_cut
- word_break
- fibonacci
- hosoya triangle
- K-Factor_strings
- planting_trees
- graph
- heap
- linkedlist
- map
- maths
- base_conversion
- chinese_remainder_theorem
- combination
- cosine_similarity
- decimal_to_binary_ip
- diffie_hellman_key_exchange
- euler_totient
- extended_gcd
- factorial
- find_order
- find_primitive_root
- gcd/lcm
- generate_strobogrammtic
- hailstone
- is_strobogrammatic
- krishnamurthy_number
- magic_number
- modular_exponential
- modular_inverse
- next_bigger
- next_perfect_square
- nth_digit
- num_perfect_squares
- polynomial
- power
- prime_check
- primes_sieve_of_eratosthenes
- pythagoras
- rabin_miller
- recursive_binomial_coefficient
- rsa
- sqrt_precision_factor
- summing_digits
- symmetry_group_cycle_index
- matrix
- queues
- search
- set
- sort
- stack
- streaming
- strings
- fizzbuzz
- delete_reoccurring
- strip_url_params
- validate_coordinates
- domain_extractor
- merge_string_checker
- 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
- unique_morse
- judge_circle
- strong_password
- caesar_cipher
- check_pangram
- contain_string
- count_binary_substring
- repeat_string
- min_distance
- longest_common_prefix
- rotate
- first_unique_char
- repeat_substring
- longest_palindromic_substring
- knuth_morris_pratt
- panagram
- tree
- bst
- fenwick_tree
- red_black_tree
- segment_tree
- traversal
- trie
- b_tree
- binary_tree_paths
- bin_tree_to_list
- construct_tree_preorder_postorder
- deepest_left
- invert_tree
- is_balanced
- is_subtree
- is_symmetric
- longest_consecutive
- lowest_common_ancestor
- max_height
- max_path_sum
- min_height
- path_sum
- path_sum2
- pretty_print
- same_tree
- tree
- unix
- unionfind