Skip to content

SDineshKumar1304/Python_and_dsa

Repository files navigation

🚀 Python and DSA Learning Journey 🚀

image


Typing SVG


👋 Welcome to My Learning Journal!

I'm Dinesh Kumar, a Junior Data Scientist and AI enthusiast, diving deeper into Python, Object-Oriented Programming (OOP), Data Structures & Algorithms (DSA), and Sorting Algorithms to sharpen my coding and problem-solving skills. Follow along as I explore Stack, Queue, Two Pointers, Sliding Window, Dictionary, Linked List, and Sorting Algorithms like Merge Sort, Quick Sort, Insertion Sort, Selection Sort, and Bubble Sort!


💡 Topics I'm Focusing On

🐍 Python Fundamentals

  • 🎯 Variables, Data Types, and Operators
  • 🎯 Control Structures: Loops, Conditional Statements
  • 🎯 Functions: Basics, Recursion, and Lambda Functions

🏗️ Object-Oriented Programming (OOP)

  • 💡 Classes and Objects
  • 💡 Constructors and Destructors
  • 💡 Inheritance (Single, Multiple, Multilevel)
  • 💡 Polymorphism (Overloading and Overriding)
  • 💡 Encapsulation and Abstraction

🧮 Data Structures & Algorithms (DSA)

  • Stack:

    • 🔄 Balanced Parentheses, Evaluate Postfix Expression
    • 🔄 Implementing Stack Using Arrays or Lists
  • Queue:

    • 🔄 Implementing Queue and Circular Queue
    • 🔄 Problems: First Non-Repeating Character, Queue Using Stacks
  • Two Pointers:

    • 🔄 Problems: Pair Sum, Three Sum, Container with Most Water
  • Sliding Window:

    • 🔄 Problems: Maximum Sum Subarray, Longest Substring Without Repeating Characters
  • Dictionary:

    • 🔄 Problems: Frequency Count, Anagram Groups, Subarray Sum Equals K
  • Linked List:

    • 🔄 Basics: Singly and Doubly Linked Lists
    • 🔄 Problems: Reverse a Linked List, Merge Two Sorted Lists, Detect Cycle in Linked List

🔢 Sorting Algorithms

  • Merge Sort:

    • Divide and conquer approach, splits an array into two halves, sorts them, and merges them.
  • Quick Sort:

    • Picks a pivot, partitions the array, and recursively sorts the subarrays.
  • Insertion Sort:

    • Builds the sorted array one element at a time by inserting each new element into its proper position.
  • Selection Sort:

    • Selects the smallest element and swaps it with the first unsorted element, and repeats this for all elements.
  • Bubble Sort:

    • Repeatedly compares and swaps adjacent elements until the list is sorted.

🏆 Goals

  • 🎯 Master Python Core and OOP Concepts
  • 🎯 Solve 50+ DSA problems, focusing on Stack, Queue, Two Pointers, Sliding Window, Dictionary, and Linked List.
  • 🎯 Learn and Implement Sorting Algorithms: Merge Sort, Quick Sort, Insertion Sort, Selection Sort, and Bubble Sort.
  • 🎯 Develop a mini-project combining Python skills and DSA concepts.

  • 🔧 Tools:
    • Jupyter Notebook, VSCode, Git for version control

📈 Progress Tracking

🏗️ Topic Problems Solved Notes/Reflections
🌀 Stack 10 Learned stack operations and solved balanced parentheses efficiently.
📚 Queue 8 Practiced queue variations, including circular queue.
🧮 Two Pointers 10 Improved problem-solving speed with two-pointer technique.
🔍 Sliding Window 12 Mastered optimizing subarray problems.
📖 Dictionary 8 Solved anagram and frequency-based problems.
🔗 Linked List 5 Understood reversing and merging linked lists.
🧩 Sorting Algorithms 12 Implemented Merge Sort, Quick Sort, Insertion Sort, Selection Sort, and Bubble Sort.

💬 Let's Connect

I'm open to discussions, collaborations, or sharing insights!


🏁 Final Outcome

By the end of this journey, I aim to:

  1. Develop a solid foundation in Python programming and OOP.
  2. Solve 50+ DSA problems with clear solutions and optimizations.
  3. Implement and master sorting algorithms like Merge Sort, Quick Sort, Insertion Sort, Selection Sort, and Bubble Sort.

Coding Animation


Stay tuned for updates, and feel free to share tips or resources! 🚀

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors