Questions by xspencer - Page 8

Purpose: To practice recursion (and strings) Degree of Difficulty: Easy to Moderate. A palindrome is a string whose characters are the same forward and backwards, for example: "radar", "mom" and "abcddcba". Null (empty) strings and strings with 1 character are considered palindromes. Write a function, is_pal(), that has one parameter - s (a string), and that returns the Boolean value True or False depending on whether s is a palindrome. The function must use recursion. We will need more than 1 base case. When defining the base cases think about the case(s) where we can definitely state that a string is a Palindrome and/or the case(s) where we can definitely state that a string is NOT a Palindrome. Testing Your "main" program will test your function with the following strings: null string, "Z", "yy", "zyz", "Amore, Roma", "Amore, Rome", "xyaz", and "A man, a plan, a canal - Panama.". The test words must be stored in a list. Your program will use a loop to go through this list, calling is_pal() to determine whether each word is or is not a palindrome. The output, for the test words "Z" and "Amore, Rome" would look like this. Notes: Z is a palindrome: True Amore, Rome is a palindrome: False Punctuation and spaces are ignored when considering whether a string is a palindrome. Therefore - before calling is_pal() with a test word, your main program must remove all punctuation and spaces from a test word before using it as an argument. Upper and lower case letters are considered identical when considering whether a string is a palindrome. Therefore - before calling is_pal() with a test word, your main program must "convert" the test word into either all upper-case or all lower-case before using it as an argument.