Exercises from Cracking the Code Interview