title: Data Structure and Algorithmic Thinking with Python: Data Structure and Algorithmic Puzzles
author:  Narasimha Karumanchi 
description: <div><div><b>Narasimha Karumanchi</b>is the founder of CareerMonk Publications and author of few books on data structures, algorithms, and design patterns. He was a software developer who has been both interviewer and interviewee over his long career. Most recently he worked for Amazon Corporation, IBM Software Labs, Mentor Graphics, and Microsoft. <b>Narasimha</b> holds an M.Tech. in computer science from IIT, Bombay, and B.Tech. from JNT university. He authored the following books which got translated to international languages: Chinese, Japanese, Korea and Taiwan. Also, around 58 international universities were using these books as reference for academic courses.</div><div><ul><li>Data Structures and Algorithms Made Easy</li><li>IT Interview Questions</li><li>Data Structures and Algorithms for GATE</li><li>Data Structures and Algorithms Made Easy in Java</li><li>Coding Interview Questions</li><li>Peeling Design Patterns</li><li>Elements of Computer Networking</li><li>Data Structure and Algorithmic Thinking with Python</li><li>Algorithm Design Techniques</li></ul></div></div>
zlib_text: ![](Images/image00207.jpeg)
  
  **Competitive Programming in Python**
  
  Want to kill it at your job interview in the tech industry? Want to win that
  coding competition? Learn all the algorithmic techniques and programming
  skills you need from two experienced coaches, problem-setters, and judges for
  coding competitions.
  
  The authors highlight the versatility of each algorithm by considering a
  variety of problems and show how to implement algorithms in simple and
  efficient code. What to expect:
  
  * Master 128 algorithms in Python. 
  
  * Discover the right way to tackle a problem and quickly implement a solution of low complexity. 
  
  * Understand classic problems like Dijkstra’s shortest path algorithm and Knuth–Morris–Pratt’s string matching algorithm, plus lesser-known data structures like Fenwick trees and Knuth’s dancing links. 
  
  * Develop a framework to tackle algorithmic problem solving, including: Definition, Complexity, Applications, Algorithm, Key Information, Implementation, Variants, I