This repository provides Python implementations of various data structures, algorithms, design patterns, and solutions to popular coding problems. It aims to build a strong foundation in Python programming, improve problem-solving skills, and explore optimization techniques for real-world and competitive programming challenges on platforms like LeetCode, Codeforces, and HackerRank.
The repository is organized into the following folders:
This folder contains basic Python concepts and fundamental programming techniques to build a strong foundation.
- Built-in functions and modules
- Closures, nested functions, and decorators
- Context managers and file handling
- Python data structures, comprehensions, and string operations
- Functions, control flow, and operators
- Module imports and custom modules
This folder focuses on object-oriented programming concepts and patterns.
- Classes, objects, and inheritance
- Encapsulation and polymorphism
- Static and class methods
- Dunder (magic) methods
This folder includes implementations of essential algorithms, covering:
- Sorting (Quick Sort, Merge Sort, etc.)
- Searching (Binary Search, Linear Search)
- Divide and Conquer
- Greedy Algorithms
- Dynamic Programming
- Backtracking
- Graph Algorithms (BFS, DFS)
This folder includes implementations of core data structures and algorithms for DSA practice.
- Arrays
- Linked Lists
- Stacks
- Queues
- Hash Tables
- Trees
- Graphs
This folder organizes design patterns into three categories:
- Abstract Factory, Builder, Factory, Prototype, Singleton
- Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy
- Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template, Visitor
This folder demonstrates concurrency and parallelism concepts in Python.
- Asynchronous Programming (
asyncio) - Threading (
py_threading.py) - Multiprocessing (
multi_processing.py) - Using
concurrent.futuresfor thread and process pools - Green threads with
gevent
This folder explores memory management and optimization techniques in Python.
- Garbage collection
- Heap and stack memory differentiation
- Memory usage optimization
- Weak references
This folder contains solutions to coding problems from platforms such as LeetCode, Codeforces, and HackerRank.
This folder focuses on testing and debugging techniques in Python.
- Examples using Python's
pdbdebugger
- Code profiling with
cProfile - Optimization using
functools.lru_cache - Benchmarking with
timeit
- Example unit tests for mathematical operations
Feel free to reach out if you have any questions or suggestions: