所有題目源**:git位址
題目
給你乙個字串 s,請你將 s 分割成一些子串,使每個子串都是 回文串 。返回 s 所有可能的分割方案。
回文串 是正著讀和反著讀都一樣的字串。
示例 1:
輸入:s =
"aab"
輸出:[
["a"
,"a"
,"b"],
["aa"
,"b"]]
示例 2:
輸入:s =
"a"輸出:[
["a"]]
1<= s.length <=
16s 僅由小寫英文本母組成
方案:class
solution
//判斷回文
bool judge
(string s,
int start,
int end)
else
return
false;}
return
true;}
//分支回溯
vector
>
part
(vector
> last, string last_add, string &s,
int start)
else}}
//如果拆到底了,就返回更新的last
if(start == s.
size()
)//如果沒,則開啟下一輪
vector
> res;
for(
int i = start; i < s.
size()
; i++
)//不是則加長
}return res;}}
;
複雜度計算 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...
131 分割回文串 M
給定乙個字串 s,將 s 分割成一些子串,使每個子串都是回文串。返回 s 所有可能的分割方案。示例 輸入 aab 輸出 aa b a a b 分析 一種基礎方案是單個字元作為乙個子串 剩下的構造,只需進行合併操作即可。但這種自底向上的方案,並不好確定組合。那直接進行劃分怎麼樣?以aab為例,aab ...