136 分割回文串

2022-02-15 00:06:58 字數 1092 閱讀 9612

中文english

給定字串s, 需要將它分割成一些子串, 使得每個子串都是回文串.

返回所有可能的分割方案.

樣例 1:

輸入: "a"

輸出: [["a"]]

解釋: 字串裡只有乙個字元, 也就只有一種分割方式 (就是它本身)

樣例 2:

輸入: "aab"

輸出: [["aa", "b"], ["a", "a", "b"]]

解釋: 有兩種分割的方式.

1. 將 "aab" 分割成 "aa" 和 "b", 它們都是回文的.

2. 將 "aab" 分割成 "a", "a" 和 "b", 它們全都是回文的.

不同的方案之間的順序可以是任意的.

一種分割方案中的每個子串都必須是s中連續的一段.

輸入測試資料 (每行乙個引數)如何理解測試資料?

class

solution:

""" @param: s: a string

@return: a list of lists of

string

"""def partition(self, ss):

if not ss:return

none

#初始條件

dp = [ for _ in

range(len(ss))]

dp[0] = [[ss[0

]]] #計算順序

for i in range(1

,len(ss)):

for j in range(i+1

): s = ss[j:i] +ss[i]

#邊界情況

if s == s[::-1

]:

if j == 0

:]])

continue

for dic in dp[j-1

]:

return dp[-1]

LintCode 136 分割回文串

給定乙個字串s,將s分割成一些子串,使每個子串都是回文串。返回s所有可能的回文串分割方案。給出 s aab 返回 aa b a a b 分析 採用深度優先搜尋即可,這種回文串的題目一上來我想到的居然是用線性規劃。繞了好大的坑,使用深度優先搜尋十分方便。class solution return tr...

131分割回文串

回溯 res tmp def ispalindrome self,s str 判斷是否是回文串 return s s 1 def dfs self,s str param s param index 初始為0 return if 0 len s 遞迴終止條件,在res中儲存tmp的複製值 tmp.c...

131 分割回文串

題目鏈結 與93題 恢復ip位址思路一致 給定乙個字串 s,將 s 分割成一些子串,使每個子串都是回文串。返回 s 所有可能的分割方案。示例 輸入 aab 輸出 aa b a a b class solution object def partition self,s type s str rtyp...