# 回溯
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.clear()
return
for i in range(1, len(s) + 1):
if self.ispalindrome(s[0:i]):
self.dfs(s[i:]) # 進入下一次遞迴
if self.tmp: # 每次遞迴返回時pop tmp中儲存的值
self.tmp.pop()
return
def partition(self, s: str):
self.res.clear()
self.tmp.clear()
self.dfs(s)
return self.res
s = solution()
print(s.partition(『aab』))
131 分割回文串
題目鏈結 與93題 恢復ip位址思路一致 給定乙個字串 s,將 s 分割成一些子串,使每個子串都是回文串。返回 s 所有可能的分割方案。示例 輸入 aab 輸出 aa b a a b class solution object def partition self,s type s str rtyp...
131 分割回文串 M
給定乙個字串 s,將 s 分割成一些子串,使每個子串都是回文串。返回 s 所有可能的分割方案。示例 輸入 aab 輸出 aa b a a b 分析 一種基礎方案是單個字元作為乙個子串 剩下的構造,只需進行合併操作即可。但這種自底向上的方案,並不好確定組合。那直接進行劃分怎麼樣?以aab為例,aab ...
力扣131 分割回文串
題目 給定乙個字串 s,將 s 分割成一些子串,使每個子串都是回文串。返回 s 所有可能的分割方案。示例 輸入 aab 輸出 aa b a a b 分析 有點向之前求所有子串問題,採用dp動態規劃演算法,只是多加上了判斷是否為回文串,在 aab 一例中可以依次分析如下分割是否滿足回文串特性 a a ...