Interview Question #008 added w/ test cases.