A collection of Data Structures and Algorithms problems and solutions implemented in Python, organized by topic. Useful for interview preparation and practice.
The repository is organized by topic:
-
Backtracking
graph_color.py— Graph coloringshakespeare.py— Text search with backtrackingsubset_sum.py— Subset sum problemsubsets.py— Generating subsetsthes.py— Thesaurus search
-
Binary Search
simple_binary_search.py— Classic binary searchsubarray_split.py— Splitting subarraystarget_k.py— Finding target ktwo_array.py— Two-array binary searchvalley.py— Valley finding
-
Dynamic Programming
minivan.py— Minivan problemrestuarants.py— Restaurant selection
-
Graphs
graph_path.py— Path findinghill.py— Hill traversalis_tree.py— Tree validationreachability.py— Node reachabilityshortest_path.py— Shortest pathspanning_tree.py— Spanning treestrongly_connected.py— Strongly connected componentsvalid_undirected_graph.py— Undirected graph validation
-
Grids and Matrices
chess.py— Chess board problemsqueen_reach.py— Queen reachabilitysnowprints.py— Snow prints traversalspiral_order.py— Spiral order traversalsubgrid_max.py— Subgrid maximumsubgrid_sum.py— Subgrid sumvalid_sudoku.py— Sudoku validation
-
Heaps
first_k.py— First K elementsimplement_heap.py— Heap implementationk_most_played.py— K most playedtop_songs.py— Top songs
-
Linked Lists
single_linked_list.py— Singly linked list
-
Sliding Windows
alternating.py— Alternating elementsbest_sales.py— Best sales windowbest_seller.py— Best seller windowenduring_seller.py— Enduring sellermax_sales.py— Maximum salesmax_subarray.py— Maximum subarraysales.py— Sales analysis
-
Sorting
custom_comparator.py— Custom comparator sortingsorting_by_frequency.py— Frequency-based sorting
-
String Manipulation
convert_case.py— Case conversionis_alpha.py— Alphabetic checkstring_join.py— String joiningstring_match.py— String matchingstring_split.py— String splitting
-
Trees
align.py— Tree alignmenthidden_message.py— Hidden message in tree
-
Two Pointers
prefix_suffix_swap.py— Prefix/suffix swapsender.py— Sender problemshift_word.py— Word shifting
-
Cheatsheets — Quick-reference guides
01_Language_Core.md02_Data_Structures.md03_Sorting_and_Functional.md04_Math_and_Utils.md05_Trees_and_Graphs.md06_Key_Algorithms.md07_Dynamic_and_Greedy.md08_Misc_Algorithms.md
Each script is self-contained. Run any solution individually:
python path/to/script.py