leetcode 214 最短回文串

2021-10-08 12:31:02 字數 872 閱讀 6107

給定乙個字串 s,你可以通過在字串前面新增字元將其轉換為回文串。找到並返回可以用這種方式轉換的最短回文串。

示例 1:

輸入: "aacecaaa"

輸出: "aaacecaaa"

示例 2:

輸入: "abcd"

輸出: "dcbabcd"

因為只能從最前面新增字元,而且要保證新增了字元後組成1個回文串,所以列舉所有可能。對給出的s,從最後向前找回文串,如果找到index左邊的子串是乙個回文串的話,那麼只需要新增index右邊子串的逆序,就可以把字串變成回文串。

每次判斷回文串的複雜度是o(n

2)

o(n^2)

o(n2

),最壞情況要判斷n次,因此最壞時間複雜度是o(n

3)

o(n^3)

o(n3

)

class

solution

:def

shortestpalindrome

(self, s:

str)

->

str:

for index in

range

(len

(s),-1

,-1)

: left_word = s[

:index]

add_word = s[index:

]if left_word == left_word[::

-1]:

break

return add_word[::

-1]+ s

LeetCode214 最短回文串

給定乙個字串s,你可以通過在字串前面新增字元將其轉換為回文串。找到並返回可以用這種方式轉換的最短回文串。示例 1 輸入 aacecaaa 輸出 aaacecaaa 示例 2 輸入 abcd 輸出 dcbabcd 1 s s1 s2,其中s1是回文串,s2是s s1。2 ans 反轉後的s2 s cl...

LeetCode 214 最短回文串

給定乙個字串s,你可以通過在字串前面新增字元將其轉換為回文串。找到並返回可以用這種方式轉換的最短回文串。示例 1 輸入 aacecaaa 輸出 aaacecaaa 示例 2 輸入 abcd 輸出 dcbabcd 和hdu clairewd s message類似 其實等價於找最長字首回文串 aace...

LeetCode 214 最短回文串

給定乙個字串s,你可以通過在字串前面新增字元將其轉換為回文串。找到並返回可以用這種方式轉換的最短回文串。class solution def shortestpalindrome self,s str str 回文串從首到尾和從尾部到首部字串同,字串表示的數字同樣也相等。子串問題的乙個經典的解決方法...