leetcode 132 Palindrome Pairs 2

lc132 Palindrome Pairs 2

 

大致与lc131相同,这里要求的是最小分割方案

同样可以分割成子问题

dp[i][j]还是表示s(i~j)是否为palindrome

res[i]则用来记录s(0~i)的最小cut数

 

 1 class Solution {
 2     public int minCut(String s) {
 3         int[] dp = new int[s.length()];
 4         boolean[][] isP = new boolean[s.length()][s.length()];
 5         
 6         
 7         for(int i=0; i<s.length(); i++){
 8             int min = i;
 9             for(int j=0; j<=i; j++){
10                 if(s.charAt(i) == s.charAt(j) && (i-j <= 1 || isP[j+1][i-1])){
11                     isP[j][i] = true;
12                     min = j==0 ? 0 : Math.min(min, dp[j-1]+1);
13                 }
14             }
15             dp[i] = min;
16         }
17         
18         return dp[s.length() - 1];
19     }
20 }

 

posted @ 2019-06-21 15:59  南山南北秋悲  阅读(119)  评论(0编辑  收藏  举报