131分割回文串

2021-09-24 00:15:06 字數 819 閱讀 1539

# 回溯

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 ...