the solution of Cracking the Coding Interview - 5th