Interview Question #004 added w/ test cases.