A palindrome is a nonempty string over some alphabet that reads the same forward and backward.
Examples of palindromes are all strings of length 1, civic, racecar, and aibohphobia (fear of palindromes). Give an efficient algorithm to find the longest palindrome that is a subsequence of a given input string.
For example, given the input character, your algorithm should return carac.
What is the running time of your algorithm? (You must prove that this problem exhibits optimal substructure and derive a recursive solution.
Implementation and pseudo code of the Dynamic Programming algorithm is NOT required).