Skip to content

This repository features DSA problems & solutions in Python adapted from structy.net course. I created it as a resource to help others enhance their problem-solving skills and build proficiency in Python. Whether you're a beginner or a seasoned programmer, this comprehensive guide can help you develop your abilities and excel in your career.

Notifications You must be signed in to change notification settings

MoigeMatino/data-structures-algorithms-python

Repository files navigation

Data Structures and Algorithms - Python

This repository mirrors the problem sets from the structy.net website, offering a comprehensive collection of Python challenges in data structures and algorithms. These problems are structured to be tackled sequentially, ensuring a logical progression in learning, with tasks thoughtfully arranged below in chronological order.

As part of the continued commitment to your success, this repository is currently undergoing exciting enhancements. Expect comprehensive test coverage for all problems, with some tests already completed, along with detailed comments to aid better understanding.

If you find this repo helpful, please consider giving it a star 🌟 to show your support!

🛠️ Enhancements

  • Comprehensive Test Coverage: This repository is being enhanced to include thorough test cases for all problems, ensuring the correctness and efficiency of your code solutions.
  • Detailed Comments: Detailed comments are being progressively added to the problems and solutions, providing deeper insights into the code, explaining the logic behind specific approaches, and enhancing your understanding of the algorithms and data structures involved.
  • Bonus Questions: To further challenge your understanding and explore related concepts, bonus questions have been added to many topics. These questions delve deeper into the topics covered in the main problem and comments, providing additional opportunities for practice and learning.
  • Difficulty Levels: The introduction of difficulty levels for each problem is planned, allowing you to progressively challenge yourself and learn at your own pace, starting with fundamental concepts and gradually advancing towards more complex tasks.
  • Interactive Elements: The incorporation of interactive elements, such as quizzes or code challenges, is being explored. These elements aim to reinforce your learning and make the practice experience more engaging.
  • Community Forum: The establishment of a community forum where users can share solutions, ask questions, and engage with each other is being considered. This collaborative environment hopes to foster learning and problem-solving skills.

0. Introduction

000. hey programmer
001. max value
002. is prime

1. Arrays and Strings

003. uncompress
004. compress
005. anagrams
006. most frequent char
007. pair sum
008. pair product
009. intersection
010. five sort
BONUS: three sum
BONUS: happy number
BONUS: first bad version
BONUS: circular array loop
BONUS: longest palindrome
BONUS: sum of three values
BONUS: find duplicate number
BONUS: container with most water
BONUS: search rotated sorted array

2. Linked Lists

011. traversal
012. sum list
013. linked list find
014. get node value
015. reverse list
016. zipper lists
017. merge lists
018. is univalue list
019. longest streak
020. remove node
021. insert node
022. create linked list
023. add lists
BONUS: middle of a linked list
BONUS: palindrome linked list
BONUS: remove nth node from end of list

3. Binary Tree

024. depth first values
025. breadth first values
026. tree sum
027. tree includes
028. tree min value
029. max root to leaf path sum
030. tree path finder
031. tree value count
032. how high
033. bottom right value
034. all tree paths
035. tree level
036. level averages
037. leaf list
BONUS: diameter of a tree
BONUS: invert tree
BONUS: max tree path sum
BONUS: serialise and desrialise tree
BONUS: symmetric tree

4. Graphs

038. has path
039. undirected path
040. connected components count
041. largest component
042. shortest path
043. island count
044. minimum island
045. closest carrot
046. longest path
047. semesters required
048. best bridge
049. has cycle
050. prereqs possible
051. knight attack

5. Dynamic Programming

052. fib
053. tribonacci
054. sum possible
055. min change
056. count path
057. max path sum
058. non adjacent sum
059. summing squares
060. counting change
061. array stepper
062. max palin subsequence
063. overlap subsequence
064. can concat
065. quickest concat
066. knightly number BONUS: house robber
BONUS: palindromic strings
BONUS: word break
BONUS: count bits
BONUS: 0/1 knapsack
BONUS: 01 matrix

6. Stacks

067. paired parentheses
068. befitting brackets
069. decompress braces
070. nesting score
BONUS: reverse stack

About

This repository features DSA problems & solutions in Python adapted from structy.net course. I created it as a resource to help others enhance their problem-solving skills and build proficiency in Python. Whether you're a beginner or a seasoned programmer, this comprehensive guide can help you develop your abilities and excel in your career.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages