leetcode132(分割回文串II 動態規劃)

2021-10-21 11:43:00 字數 659 閱讀 4629

給你乙個字串 s,請你將 s 分割成一些子串,使每個子串都是回文。

返回符合要求的 最少分割次數 。

例:輸入:s = 「aab」

輸出:1

解釋:只需一次分割就可將 s 分割成 [「aa」,「b」] 這樣兩個回文子串。

題解:動態規劃

先利用動態規劃對字串進行預處理,找出回文串中所有的回文子串。然後繼續利用動態規劃方法,用int [ ]min 記錄字串前i個字元的最少分割次數(i=0,1,2,3…min.length-1)。

動態規劃方程:

min[ i ]=math.min(min[ i ],min[ j ]+1) (注:s.substring(j+1,i)為回文子串,且 j 取遍0到i-1)

class

solution

for(

int i=

1;i}int

cutdp=

newint

[l];

arrays.

fill

(cutdp,integer.max_value)

;for

(int i=

0;i)for

(int j=

0;j}return cutdp[l-1]

;}}

leetcode132 分割回文串II

給定乙個字串 s,將 s 分割成一些子串,使每個子串都是回文串。返回符合要求的最少分割次數。示例 輸入 aab 輸出 1 解釋 進行一次分割就可將 s 分割成 aa b 這樣兩個回文子串。01揹包 給定num個物品,每種物品都有自己的重量 wi 和價值 vi,且都為整數,在限定的總重量weight內...

leetcode132分割回文字串

給定乙個字串 s,將 s 分割成一些子串,使每個子串都是回文串。返回符合要求的最少分割次數。示例 輸入 aab 輸出 1 解釋 進行一次分割就可將 s 分割成 aa b 這樣兩個回文子串。1.遞迴 回溯 記錄每一次分割所需要的次數,求最小值 如下 class solution void dfs st...

leetcode 132 分割回文串II

1 今天的題目困難,顯然我又不會做 2 在昨天官方答案基礎上稍微做了改動。還是貼出官方答案吧。3 題目思路 求最小的分割次數,既然是分割回文串ii必然和分割回文串i有相通之處,還記得昨天的採用動態規劃嘛,所以可以求解f i 最小分割次數,f i 為s 0 i 之間的最小分割次數,求解f i 考慮列舉...