leetcode之路--leetcode 214. 最短回文串(2)

前言

接上文,继续刷题

leetcode 214. 最短回文串

给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。

输入: "aacecaaa"
输出: "aaacecaaa"

这里的问题和上一篇博客类似。上一篇博客讲的是从一个字符串中找到最长的回文串。该题目是根据已有的字符串,添加最少的字符使其变成回文串。如果首先做了上一篇博客的题目(求取字符串中最长的回文串),那么这个题目就显得比较容易了。

思路:观察给定的几个例子,发现输出的字符串并不是直接将给定的字符串反转添加在字符串头。因为给定的字符串本身就存在回文串的话,添加的字符就会不同,但是只有在从给定字符串的第一个字符算法,求取最长的回文串,将剩下的子串反转添加在字符串头即可。

def t3(s):
    if len(s)<2:
        return s
    length = len(s)
    maxlen = 1
    end = 0
    while maxlen

另外,还需要注意特殊情况:

当给定的字符串长度为1时,不需要添加任何字符,它本身就是回文串。

你可能感兴趣的:(leetcode之路--leetcode 214. 最短回文串(2))