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

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

示例 1:

输入: "aaceebb"

输出: "bbeacaacaebb"

 1  1 class Solution(object):
 2  2     def shortestPalindrome(self, s):
 3  3         """
 4  4         :type s: str
 5  5         :rtype: str
 6  6         """
 7  7         # 把当前字符串参数进行反转
 8  8         res = s[::-1]
 9  9         # 对当前参数len进行循环
10 10         for i in range(len(s)):
11 11             # 判断当前 循环的数据 和 原始参数数据 进行比对 当相等时成立 结束当前循环
12 12             if(res[i:len(s)] == s[0:len(s)-i]):
13 13                 break
14 14         # 拿返回转数据和原始参数相加即可
15 15         return res[0:i]+s
16 16 
17 17 if __name__ == '__main__':
18 18     a =Solution()
19 19     aa= a.shortestPalindrome("aacaebb")
20 20     print(aa)

返回结果

1 "bbeacaacaebb"

示例 2:

输入: "abcd"
输出: "dcbabcd"
  
 1 class Solution(object):
 2     def shortestPalindrome(self, s):
 3         """
 4         :type s: str
 5         :rtype: str
 6         """
 7         # 把当前字符串参数进行反转
 8         res = s[::-1]
 9         # 对当前参数len进行循环
10         for i in range(len(s)):
11             # 判断当前 循环的数据 和 原始参数数据 进行比对 当相等时成立 结束当前循环
12             if(res[i:len(s)] == s[0:len(s)-i]):
13                 break
14         # 拿返回转数据和原始参数相加即可
15         return res[0:i]+s[1:]
16 
17 if __name__ == '__main__':
18     a =Solution()
19     aa= a.shortestPalindrome("aacaebb")
20     print(aa)

返回结果

1 1 "bbeacacaebb"