这是问题和代码:
给出一个字符串s,您可以通过在字符串前面添加字符来将其转换为回文。通过执行此转换,找到并返回您可以找到的最短回文。
示例1:
输入:“ aacecaaa” 输出:“ aaacecaaa” 示例2:
输入:“ abcd” 输出:“ dcbabcd”
此问题的递归解决方案:
def solution(s):
i = 0
for j in range(len(s) - 1, -1, -1):
if s[i] == s[j]:
i += 1
if i == len(s):
return s
return s[i:][::-1] + self.shortestPalindrome(s[:i]) + s[i:]
我试图平均计算出该解决方案的时间复杂度。非常感谢您的帮助!