Competitive Programming in Python 128 Algorithms to Develop your Coding Skills All the algorithms, proofs, and implementations in Python you need to know for tech job interviews and coding competitions. Christoph Dürr (Author), Jill-Jênn Vie (Author), Greg Gibbons (Translated by), Danièle Gibbons (Translated by) 9781108716826, Cambridge University Press Paperback / softback, published 17 December 2020 264 pages24.4 x 17 x 1.5 cm, 0.46 kg 'This book guides the reader through a collection of interesting problems, teaching us many ideas that underlie efficient algorithms. The simplicity of Python helps highlight the beauty and accessibility of the ideas. I found it a most enjoyable and engaging book.' Anupam Gupta, Carnegie Mellon University 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 jurors 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. Readers can expect to master 128 algorithms in Python and discover the right way to tackle a problem and quickly implement a solution of low complexity. Classic problems like Dijkstra's shortest path algorithm and Knuth-Morris-Pratt's string matching algorithm are featured alongside lesser known data structures like Fenwick trees and Knuth's dancing links. The book provides a framework to tackle algorithmic problem solving, including: Definition, Complexity, Applications, Algorithm, Key Information, Implementation, Variants, In Practice, and Problems. Python code included in the book and on the companion website. 1. Introduction 2. Character strings 3. Sequences 4. Arrays 5. Intervals 6. Graphs 7. Cycles in graphs 8. Shortest paths 9. Matching and flows 10. Trees 11. Sets 12. Points and polygons 13. Rectangles 14. Numbers and matrices 15. Exhaustive search 16. Conclusion. Subject Areas: Mathematical theory of computation [UYA], Software Engineering [UMZ], Algorithms & data structures [UMB], Computer programming / software development [UM], Careers guidance [JNR], Coding theory & cryptology [GPJ]