O(n^2)的方法,最后一个case超时。需要用kmp方法或者manacher方法才能O(n),先忽略了。
class Solution:
def isPalindrome(self, sub: str) -> bool:
for i in range(len(sub) // 2):
if sub[i] != sub[len(sub) - i - 1]:
return False
return True
def shortestPalindrome(self, s: str) -> str:
for i in range(len(s)-1,-1,-1):
if self.isPalindrome(s[:i+1]):
palindrome = s[i+1:][::-1] + s
return palindrome
return ''