2020-08-29 KMP

题目链接

参考链接

https://leetcode-cn.com/problems/shortest-palindrome/solution/shi-jian-fu-za-du-on-jie-fa-la-che-by-time-limit/

方法1 常规思路 模拟

回文串 由 原本字符串和字符串中的子串逆序组成
因此从字符串的逆序中寻找最短子串 使得字符串能够构成回文串


image.png
class Solution:
    def shortestPalindrome(self, s: str) -> str:
        if not s:
            return s
        def isHuiwen(s):
            pre=s[len(s)//2:]
            suf=s[:(len(s)+1)//2][::-1]
            # print('    ',pre,suf)
            if pre==suf:
                return True
            else:
                return False
        
        for i in range(len(s)):
            t=s[::-1][:i]
            # print(t,t+s,isHuiwen(t+s))
            if isHuiwen(t+s):
                return t+s


方法2 Manacher

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容