Interview Question #007 added w/ test cases.