C語言重構 131 分割回文串

2021-10-21 14:23:02 字數 924 閱讀 9684

所有題目源**: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 ...