214. Shortest Palindrome (Hard)