給定乙個字串 s,將 s 分割成一些子串,使每個子串都是回文串。
返回 s 所有可能的分割方案。
示例:輸入: 「aab」
輸出:[
[「aa」,「b」],
[「a」,「a」,「b」]
]
public list
>
partition
(string s)
partition
(s,0
,new
arraylist
<
>()
, res)
;return res;
}//index表示當前應該處理s的第index個位置
//list儲存當前已經獲得的回文字串
private
void
partition
(string s ,
int index , list
list , list
> res)
for(
int i =
1; index+i<=s.
length()
; i++)}
}private
boolean
ispalindrome
(string s)
int i =0;
int j = s.
length()
-1;while
(ii++
; j--;}
return
true;}
public
static
void
main
(string[
] args)
LeetCode 131 分割回文串
給定乙個字串 s,將 s 分割成一些子串,使每個子串都是回文串。返回 s 所有可能的分割方案。示例 輸入 aab 輸出 aa b a a b 思路 回溯法 注意回溯的位置 class solution object def partition self,s type s str rtype list...
LeetCode 131 分割回文串
返回 s 所有可能的分割方案。分析 首先要用動態規劃來標記出回文子串的位置,dp i j true表示字串i到j是回文。因此動態規劃判斷時候是用的 dp i j s i s j len 3 dp i 1 j 1 表示當len 3時候只需要判斷兩個端點,其他時候還要判斷中間是否是回文子串。然後使用回溯...
leetcode 131 分割回文串
題目 思路 回溯,寫乙個輔助函式來實現回溯操作。以python 為例,如果當前i length,就代表已遍歷完字串s,將子路徑path加入最終res中。i記錄了每次回溯的開始index。python版 def partition self,s res length len s def helper ...