1. # Combinatorial Generation For Coding Interviews With Examples In Python

What you need to know to solve basic combinatorial generation problems you might encounter on coding interviews, with plenty of examples in Python.

Tags:
2. # From An Iterator of Iterators to Cantor's Paradise: A Deep Dive Into An Interview Question

A deep dive into flattening an iterator of iterators and a segue into set theory and some of its theorems based on the solutions to this problem, inspired by a coding interview question.

Tags:
3. # Generating All Balanced Parentheses: A Deep Dive Into An Interview Question

A deep dive into the generation of balanced parentheses, inspired by a coding interview question.

Tags:
4. # A Review of Basic Algorithms and Data Structures in Python - Part 1: Graph Algorithms

A quick review of basic graph algorithms and related data structures, with minimal implementations and unit tests provided in Python.

Tags:
5. # The Infinite In Haskell and Python

Exploring the use of coroutines and lazy evaluation to generate infinite structures in Haskell and Python.

Tags:
6. # Understanding Recurrence Relations Using Automata, Python Code, And Javascript Visualizations

Recurrence relations are very often taught in first- or second-year computer science and discrete mathematics courses. This post takes a somewhat different and more visual approach to understanding linear recurrences and solving them by drawing the link between linear recurrences, automata, and matrices, using the problem of generating all domino-tilings of a board as the springboard. Code in Python and visualizations in JavaScript are used to demonstrate the ideas.

Tags:
7. # Understanding SAT by Implementing a Simple SAT Solver in Python

SAT is often described as the "mother of all NP-complete problems." This post goes over what SAT is and why it is considered to be so important. A simple SAT solver is implemented using Python in the process.

Tags:
8. # So How Do You Actually Calculate The Fibonacci Numbers?

You have seen it as an example a million times. But do you know how to do it efficiently?

Tags:
9. # Combinatorial Generation Using Coroutines With Examples in Python

Approaching combinatorial generation algorithms using coroutines, with examples in Python. Inspired by Knuth's work in his volume 4 of The Art of Computer Programming, as well as his "Deconstructing Coroutines" paper, co-written with Frank Ruskey.

Tags:
10. # Multilinear Representation of Boolean Functions

Algorithm to compute the multilinear representation of a boolean function given its truth table.

Tags:
11. # Understanding Two-Step Verification With An Example Using Python and Google Authenticator

An introduction to two-step authentication, HOTP and TOTP algorithms, with an example in Python on Heroku using Flask and pyotp and the Google Authenticator app for client-side.

Tags:
12. # Line Intersecting Maximal Number of Circles (Circle "Stabbing" Problem)

Developing an algorithm to find a line that intersects a maximal number of circles, given a set of circles. Based on an ACM ICPC regional competition problem.

Tags:
13. # Expected Running Time of Two Randomized Sort Algorithms (ACM ICPC 2013 PACNW Regional)

Computing the expected running time of two randomized sort algorithms for a given input array. This problem appeared in ACM ICPC 2013 PACNW regional competition.

Tags:
14. # Pattern Matching in Fibonacci Words (ACM ICPC World Finals 2012)

A discussion of calculating the number of occurrences of a given pattern in Fibonacci words, with a Java solution. Problem from the 2012 ACM ICPC world finals.

Tags:
15. # Fibonacci Primitive Roots of Primes (Project Euler)

A problem on finding primes with Fibonacci primitive roots, from Project Euler and my Python solution.

Tags:
16. # Common Substring Permutation

Short post on a simple problem on common subsequence permutations with a neat one-line Python solution.

Tags:
17. # Visualizing the Convex Hull Using Raphaël

Visualizing a simple incremental convex hull algorithm using HTML5, JavaScript and Raphaël, and what I learned from doing so.

Tags:
18. # Basics of Cryptography Part I: RSA Encryption and Decryption

An introduction to RSA cryptography, with accompanying Python code implementing the basic algorithms used. A quick review of the number theory and group theory involved is given as well.

Tags:
19. # A Study of Python's More Advanced Features Part I: Iterators, Generators, itertools

A study of Python's iterators, generators and the itertools package, with ample (mostly) mathematical examples.

Tags:
20. # Interview Question: Fairness from Unfairness and Randomness Extraction

Interview question to use an unfair coin to simulate a fair one. The question is the same as extracting randomness from an unfair Bernoulli process. A Python implementation is given.

Tags:
21. # Interview Question: Grouping Words Into Anagrams

Simple Python solution to interview question to group words into anagrams.

Tags: