8.14 - hard - 42

214. Shortest Palindrome
基础想法很简单,就是找到以s[0]为起点的最长Palindrome,不过会TLE。看了答案,如果用一些buildin函数就会AC,其实时间复杂度是一样的。

还有一种解法叫做 KMP,实在是看不下去,我觉得也没啥意义,就pass吧。

class Solution(object):
    def shortestPalindrome(self, s):
        """
        :type s: str
        :rtype: str
        """
        if not s:
            return ""
        z = s[::-1]
        for i in range(len(z)):
            if s.startswith(z[i:]):
                return z[:i] + s

你可能感兴趣的:(8.14 - hard - 42)