中文english
給定字串s
, 需要將它分割成一些子串, 使得每個子串都是回文串.
返回所有可能的分割方案.
樣例 1:
輸入: "a"
輸出: [["a"]]
解釋: 字串裡只有乙個字元, 也就只有一種分割方式 (就是它本身)
樣例 2:
輸入: "aab"
輸出: [["aa", "b"], ["a", "a", "b"]]
解釋: 有兩種分割的方式.
1. 將 "aab" 分割成 "aa" 和 "b", 它們都是回文的.
2. 將 "aab" 分割成 "a", "a" 和 "b", 它們全都是回文的.
不同的方案之間的順序可以是任意的.
一種分割方案中的每個子串都必須是s
中連續的一段.
輸入測試資料 (每行乙個引數)如何理解測試資料?
classsolution:
""" @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...