Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/vinta/fuck-coding-interviews

How on earth can I ever think of a solution like that in an interview?!
https://github.com/vinta/fuck-coding-interviews

algorithms coding-interviews data-structures hackerrank interview interview-preparation leetcode python

Last synced: about 22 hours ago
JSON representation

How on earth can I ever think of a solution like that in an interview?!

Awesome Lists containing this project

README

        

# fuck-coding-interviews

This repository is created by [an awkward programmer](https://leetcode.com/vinta/) who always struggles with coding problems on LeetCode, even with some **Easy** questions.

> How on earth can I ever think of a solution like that in an interview?!

I'm working on implementing common Algorithms and Data Structures in Python (with test cases, of course), as well as straightforward solutions to some problems from LeetCode and HackerRank which I solved with frustration in mind.

Well, there are SO MUCH things to learn in Computer Science. I'm just a peasant who happens to write some crappy code for living.

**This project requires Python 3.6 or higher.**

## No Whiteboards

[Hiring Without Whiteboards](https://github.com/poteto/hiring-without-whiteboards)

A list of companies (or teams) that don't do "whiteboard" interviews.

> - Discussing a real world problem (with or without whiteboard) is 👍
> - Solving CS trivia, technical puzzles, riddles, brainteasers (with or without whiteboard) is 👎

## Contents

- Algorithms
- Searching
- [Binary Search](https://github.com/vinta/fuck-coding-interviews/blob/master/algorithms/searching/binary_search.py)
- Sorting
- [Quicksort](https://github.com/vinta/fuck-coding-interviews/blob/master/algorithms/sorting/quicksort.py)
- [Mergesort](https://github.com/vinta/fuck-coding-interviews/blob/master/algorithms/sorting/mergesort.py)
- [Heapsort](https://github.com/vinta/fuck-coding-interviews/blob/master/algorithms/sorting/heapsort.py)
- [Counting Sort](https://github.com/vinta/fuck-coding-interviews/blob/master/algorithms/sorting/counting_sort.py)
- Data Structures
- Array
- [Circular Array](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/arrays/circular_array.py)
- [Dynamic Array](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/arrays/dynamic_array.py)
- Linked List
- [Singly Linked List](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/linked_lists/singly_linked_list.py)
- [Doubly Linked List](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/linked_lists/doubly_linked_list.py)
- Stack
- [Stack implemented with Array](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/stacks/array_based_stack.py)
- [Stack implemented with Linked List](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/stacks/linked_list_based_stack.py)
- Queue
- [Queue implemented with Array](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/queues/array_based_queue.py)
- [Queue implemented with Circular Array](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/queues/circular_array_based_queue.py)
- [Queue implemented with Linked List](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/queues/linked_list_based_queue.py)
- [Double-ended Queue implemented with Doubly Linked List](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/queues/doubly_linked_list_based_deque.py)
- [Priority Queue implemented with Heap](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/queues/heap_based_priority_queue.py)
- HashMap
- [Sorted TableMap](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/hash_maps/sorted_table_map.py)
- [Unsorted TableMap](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/hash_maps/unsorted_table_map.py)
- [HashMap implemented with Separate Chaining](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/hash_maps/chain_hash_map.py)
- [HashMap implemented with Linear Probing](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/hash_maps/linear_probing_hash_map.py)
- Set
- [Set implemented with HashMap](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/sets/hash_map_based_set.py)
- [Multiset implemented with HashMap](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/sets/hash_map_based_multiset.py)
- [Union Find implemented with Quick Find](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/sets/quick_find_union_find.py) (Disjoint Set)
- [Union Find implemented with Weighted Quick Union](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/sets/weighted_quick_union_union_find.py)
- Tree
- [Binary Search Tree](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/trees/binary_search_tree.py)
- [Binary Tree Serialization](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/trees/binary_tree_serialization.py)
- [Treap](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/trees/treap.py)
- [Trie](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/trees/trie.py)
- Heap
- [Binary Heap implemented with Array](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/heaps/array_based_binary_heap.py)
- B-tree
- [B-tree](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/b_trees/b_tree.py)
- [B+ Tree](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/b_trees/b_plus_tree.py)
- Graph
- [Directed Weighted Graph implemented with Adjacency Map](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/graphs/adjacency_map_directed_weighted_graph.py)
- [Undirected Weighted Graph implemented with Adjacency Map](https://github.com/vinta/fuck-coding-interviews/blob/master/data_structures/graphs/adjacency_map_undirected_weighted_graph.py)
- Coding Problems
- Array
- [Easy] [Missing Number](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/missing_number.py) on [LeetCode](https://leetcode.com/problems/missing-number/)
- [Easy] [Shuffle the Array](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/shuffle_the_array.py) on [LeetCode](https://leetcode.com/problems/shuffle-the-array/)
- [Medium] [Container With Most Water](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/container_with_most_water.py) on [LeetCode](https://leetcode.com/problems/container-with-most-water/)
- [Medium] [Find Minimum in Rotated Sorted Array](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/find_minimum_in_rotated_sorted_array.py) on [LeetCode](https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/)
- [Medium] [Find the Duplicate Number](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/find_the_duplicate_number.py) on [LeetCode](https://leetcode.com/problems/find-the-duplicate-number/)
- [Medium] [Merge Intervals](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/merge_intervals.py) on [LeetCode](https://leetcode.com/problems/merge-intervals/)
- [Medium] [Product of Array Except Self](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/product_of_array_except_self.py) on [LeetCode](https://leetcode.com/problems/product-of-array-except-self/)
- Linked List
- [Easy] [Reverse Linked List](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/reverse_linked_list.py) on [LeetCode](https://leetcode.com/problems/reverse-linked-list/)
- [Medium] [Add Two Numbers](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/add_two_numbers.py) on [LeetCode](https://leetcode.com/problems/add-two-numbers/)
- [Medium] [Remove Nth Node From End of List](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/remove_nth_node_from_end_of_list.py) on [LeetCode](https://leetcode.com/problems/remove-nth-node-from-end-of-list/)
- Stack
- [Easy] [Maximum Element](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/maximum_element.py) on [HackerRank](https://www.hackerrank.com/challenges/maximum-element/problem)
- [Easy] [Min Stack](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/min_stack.py) on [LeetCode](https://leetcode.com/problems/min-stack/)
- [Easy] [Valid Parentheses](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/valid_parentheses.py) on [LeetCode](https://leetcode.com/problems/valid-parentheses/)
- [Medium] [Simple Text Editor](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/simple_text_editor.py) on [HackerRank](https://www.hackerrank.com/challenges/simple-text-editor/problem)
- String
- [Easy] [CamelCase](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/camel_case.py) on [HackerRank](https://www.hackerrank.com/challenges/camelcase/problem)
- [Easy] [HackerRank in a String](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/hackerrank_in_a_string.py) on [HackerRank](https://www.hackerrank.com/challenges/hackerrank-in-a-string/problem)
- [Easy] [Implement strStr()](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/implement_strstr.py) on [LeetCode](https://leetcode.com/problems/implement-strstr/)
- [Easy] [Repeated String](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/repeated_string.py) on [HackerRank](https://www.hackerrank.com/challenges/repeated-string/problem)
- [Easy] [Reverse Integer](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/reverse_integer.py) on [LeetCode](https://leetcode.com/problems/reverse-integer/)
- [Easy] [Reverse String](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/reverse_string.py) on [LeetCode](https://leetcode.com/problems/reverse-string/)
- [Easy] [Valid Anagram](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/valid_anagram.py) on [LeetCode](https://leetcode.com/problems/valid-anagram/)
- [Medium] [Group Anagrams](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/group_anagrams.py) on [LeetCode](https://leetcode.com/problems/group-anagrams/)
- HashMap
- [Easy] [Two Sum](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/two_sum.py) on [LeetCode](https://leetcode.com/problems/two-sum/)
- [Medium] [3Sum](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/three_sum.py) on [LeetCode](https://leetcode.com/problems/3sum/)
- Set
- [Easy] [Contains Duplicate](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/contains_duplicate.py) on [LeetCode](https://leetcode.com/problems/contains-duplicate/)
- Multiset
- [Easy] [Equalize the Array](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/equality_in_a_array.py) on [HackerRank](https://www.hackerrank.com/challenges/equality-in-a-array/problem)
- [Easy] [Hash Tables: Ransom Note](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/hash_tables_ransom_note.py) on [HackerRank](https://www.hackerrank.com/challenges/ctci-ransom-note/problem)
- [Easy] [Single Number](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/single_number.py) on [LeetCode](https://leetcode.com/problems/single-number/)
- [Easy] [Sock Merchant](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/sock_merchant.py) on [HackerRank](https://www.hackerrank.com/challenges/sock-merchant/problem)
- [Medium] [Top K Frequent Elements](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/top_k_frequent_elements.py) on [LeetCode](https://leetcode.com/problems/top-k-frequent-elements/)
- Heap
- [Easy] [Merge Two Sorted Lists](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/merge_two_sorted_lists.py) on [LeetCode](https://leetcode.com/problems/merge-two-sorted-lists/)
- [Easy] [Third Maximum Number](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/third_maximum_number.py) on [LeetCode](https://leetcode.com/problems/third-maximum-number/)
- [Medium] [Kth Largest Element in an Array](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/kth_largest_element_in_an_array.py) on [LeetCode](https://leetcode.com/problems/kth-largest-element-in-an-array/)
- [Medium] [Task Scheduler](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/task_scheduler.py) on [LeetCode](https://leetcode.com/problems/task-scheduler/)
- [Hard] [Median of Two Sorted Arrays](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/median_of_two_sorted_arrays.py) on [LeetCode](https://leetcode.com/problems/median-of-two-sorted-arrays/)
- [Hard] [Merge k Sorted Lists](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/merge_k_sorted_lists.py) on [LeetCode](https://leetcode.com/problems/merge-k-sorted-lists/)
- Binary Tree
- [Easy] [Balanced Binary Tree](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/balanced_binary_tree.py) on [LeetCode](https://leetcode.com/problems/balanced-binary-tree/)
- [Easy] [Find Mode in Binary Search Tree](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/find_mode_in_binary_search_tree.py) on [LeetCode](https://leetcode.com/problems/find-mode-in-binary-search-tree/)
- [Easy] [Invert Binary Tree](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/invert_binary_tree.py) on [LeetCode](https://leetcode.com/problems/invert-binary-tree/)
- [Easy] [Maximum Depth of Binary Tree](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/maximum_depth_of_binary_tree.py) on [LeetCode](https://leetcode.com/problems/maximum-depth-of-binary-tree/)
- [Easy] [Minimum Depth of Binary Tree](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/minimum_depth_of_binary_tree.py) on [LeetCode](https://leetcode.com/problems/minimum-depth-of-binary-tree/)
- [Easy] [Path Sum](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/path_sum.py) on [LeetCode](https://leetcode.com/problems/path-sum/)
- [Easy] [Same Tree](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/same_tree.py) on [LeetCode](https://leetcode.com/problems/same-tree/)
- [Easy] [Search in a Binary Search Tree](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/search_in_a_binary_search_tree.py) on [LeetCode](https://leetcode.com/problems/search-in-a-binary-search-tree/)
- [Easy] [Tree: Height of a Binary Tree](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/tree_height_of_a_binary_tree.py) on [HackerRank](https://www.hackerrank.com/challenges/tree-height-of-a-binary-tree/problem)
- [Easy] [Tree: Top View](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/tree_top_view.py) on [HackerRank](https://www.hackerrank.com/challenges/tree-top-view/problem)
- [Easy] [Univalued Binary Tree](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/univalued_binary_tree.py) on [LeetCode](https://leetcode.com/problems/univalued-binary-tree/)
- [Medium] [Binary Search Tree Iterator](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/binary_search_tree_iterator.py) on [LeetCode](https://leetcode.com/problems/binary-search-tree-iterator/)
- [Medium] [Binary Tree Inorder Traversal](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/binary_tree_inorder_traversal.py) on [LeetCode](https://leetcode.com/problems/binary-tree-inorder-traversal/)
- [Medium] [Binary Tree Level Order Traversal](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/binary_tree_level_order_traversal.py) on [LeetCode](https://leetcode.com/problems/binary-tree-level-order-traversal/)
- [Medium] [Binary Tree Postorder Traversal](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/binary_tree_postorder_traversal.py) on [LeetCode](https://leetcode.com/problems/binary-tree-postorder-traversal/)
- [Medium] [Binary Tree Preorder Traversal](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/binary_tree_preorder_traversal.py) on [LeetCode](https://leetcode.com/problems/binary-tree-preorder-traversal/)
- [Medium] [Check Completeness of a Binary Tree](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/check_completeness_of_a_binary_tree.py) on [LeetCode](https://leetcode.com/problems/check-completeness-of-a-binary-tree/)
- [Medium] [Kth Smallest Element in a BST](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/kth_smallest_element_in_a_bst.py) on [LeetCode](https://leetcode.com/problems/kth-smallest-element-in-a-bst/)
- [Medium] [Validate Binary Search Tree](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/validate_binary_search_tree.py) on [LeetCode](https://leetcode.com/problems/validate-binary-search-tree/)
- [Hard] [Binary Tree Maximum Path Sum](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/binary_tree_maximum_path_sum.py) on [LeetCode](https://leetcode.com/problems/binary-tree-maximum-path-sum/)
- [Hard] [Serialize and Deserialize Binary Tree](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/serialize_and_deserialize_binary_tree.py) on [LeetCode](https://leetcode.com/problems/serialize-and-deserialize-binary-tree/)
- Trie
- [Medium] [Implement Trie (Prefix Tree)](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/implement_trie_prefix_tree.py) on [LeetCode](https://leetcode.com/problems/implement-trie-prefix-tree/)
- Graph
- [Medium] [Clone Graph](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/clone_graph.py) on [LeetCode](https://leetcode.com/problems/clone-graph/)
- [Medium] [Course Schedule](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/course_schedule.py) on [LeetCode](https://leetcode.com/problems/course-schedule/)
- [Medium] [Prim's (MST): Special Subtree](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/prim_mst_special_subtree.py) on [HackerRank](https://www.hackerrank.com/challenges/primsmstsub/problem)
- [Medium] [Kruskal's (MST): Really Special Subtree](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/kruskal_mst_really_special_subtree.py) on [HackerRank](https://www.hackerrank.com/challenges/kruskalmstrsub/problem)
- [Hard] [BFS: Shortest Reach in a Graph](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/bfs_shortest_path_in_a_graph.py) on [HackerRank](https://www.hackerrank.com/challenges/ctci-bfs-shortest-reach/problem)
- [Hard] [Dijkstra: Shortest Reach 2](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/dijkstra_shortest_reach_2.py) on [HackerRank](https://www.hackerrank.com/challenges/dijkstrashortreach/problem)
- Sorting
- [Medium] [Sort Colors](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/sort_colors.py) on [LeetCode](https://leetcode.com/problems/sort-colors/)
- [Medium] [Sort List](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/sort_list.py) on [LeetCode](https://leetcode.com/problems/sort-list/)
- Two Pointers
- [Easy] [Best Time to Buy and Sell Stock](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/best_time_to_buy_and_sell_stock.py) on [LeetCode](https://leetcode.com/problems/best-time-to-buy-and-sell-stock/)
- [Easy] [Linked List Cycle](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/linked_list_cycle.py) on [LeetCode](https://leetcode.com/problems/linked-list-cycle/)
- [Easy] [Middle of the Linked List](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/middle_of_the_linked_list.py) on [LeetCode](https://leetcode.com/problems/middle-of-the-linked-list/)
- [Easy] [Two Sum II - Input array is sorted](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/two_sum_ii_input_array_is_sorted.py) on [LeetCode](https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/)
- [Easy] [Valid Palindrome](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/valid_palindrome.py) on [LeetCode](https://leetcode.com/problems/valid-palindrome/)
- [Medium] [Search in Rotated Sorted Array](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/search_in_rotated_sorted_array.py) on [LeetCode](https://leetcode.com/problems/search-in-rotated-sorted-array/)
- [Reverse Only Alphabetical](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/reverse_only_alphabetical.py) on [AlgoDaily](https://algodaily.com/challenges/reverse-only-alphabetical)
- Bit Manipulation
- [Easy] [Power of Two](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/power_of_two.py) on [LeetCode](https://leetcode.com/problems/power-of-two/)
- Backtracking
- [Easy] [Two Characters](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/two_characters.py) on [HackerRank](https://www.hackerrank.com/challenges/two-characters/problem)
- [Medium] [Combinations](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/combinations.py) on [LeetCode](https://leetcode.com/problems/combinations/)
- [Medium] [Permutations](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/permutations.py) on [LeetCode](https://leetcode.com/problems/permutations/)
- [Medium] [Subsets](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/subsets.py) on [LeetCode](https://leetcode.com/problems/subsets/)
- Dynamic Programming
- [Easy] [Is Subsequence](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/is_subsequence.py) on [LeetCode](https://leetcode.com/problems/is-subsequence/)
- [Easy] [Maximum Subarray](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/maximum_subarray.py) on [LeetCode](https://leetcode.com/problems/maximum-subarray/)
- [Medium] [Coin Change](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/coin_change.py) on [LeetCode](https://leetcode.com/problems/coin-change/)
- [Medium] [Maximum Product Subarray](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/maximum_product_subarray.py) on [LeetCode](https://leetcode.com/problems/maximum-product-subarray/)
- [Hard] [Trapping Rain Water](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/trapping_rain_water.py) on [LeetCode](https://leetcode.com/problems/trapping-rain-water/)
- Uncategorized
- [Easy] [Fibonacci Number](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/fibonacci_number.py) on [LeetCode](https://leetcode.com/problems/fibonacci-number/)
- [Easy] [Fizz Buzz](https://github.com/vinta/fuck-coding-interviews/blob/master/problems/fizz_buzz.py) on [LeetCode](https://leetcode.com/problems/fizz-buzz/)
- Networking
- HTTP
- [How HTTPS Works in Layman's Terms - TLS 1.2 and 1.3](https://vinta.ws/code/how-https-works-in-laymans-terms-tls-1-2-and-1-3.html)

## Tests

```bash
$ poetry install
$ poetry run pytest --benchmark-skip
```

If you don't use [poetry](https://python-poetry.org/), there is also a classic `requirements-dev.txt` file.

## Bugs

If you find any bug or incorrect implementation in this repo, please let me know by opening an issue or pull request. Me and my cats would appreciate your help since they provide some random strings which are used in two of test cases.

## Resources

### Books

- [Grokking Algorithms](https://learning.oreilly.com/library/view/grokking-algorithms-an/9781617292231/)
- [Data Structures and Algorithms in Python](https://learning.oreilly.com/library/view/data-structures-and/9781118290279/)
- [Cracking the Coding Interview](https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/0984782850/)
- [Elements of Programming Interviews in Python](https://www.amazon.com/Elements-Programming-Interviews-Python-Insiders/dp/1537713949/)

### Websites

- [Big-O Cheat Sheet](https://www.bigocheatsheet.com/)
- [Data Structure Visualizations](https://www.cs.usfca.edu/~galles/visualization/Algorithms.html)
- [Visualize Python Code Execution](http://www.pythontutor.com/live.html#mode=edit)

### Repositories

- [donnemartin/system-design-primer](https://github.com/donnemartin/system-design-primer)