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 }