邓心一 6 vuotta sitten
vanhempi
commit
deefb25a0e
1 muutettua tiedostoa jossa 21 lisäystä ja 0 poistoa
  1. 21 0
      hard/132.palindrome-partitioning-ii.java

+ 21 - 0
hard/132.palindrome-partitioning-ii.java

@@ -0,0 +1,21 @@
+import java.util.*;
+
+class Solution {
+    private char[] chs;
+
+    public int minCut(String s) {
+        chs = s.toCharArray();
+        int len = chs.length;
+        int[] dp = new int[len + 1];
+        for (int i = 0; i <= len; i++)
+            dp[i] = i - 1;
+        // dp[i] = dp[k] + 1, if s.substring(k, i + 1) is palindrome
+        for (int i = 0; i < len; i++) {
+            for (int l = i, r = i; 0 <= l && r < len && chs[l] == chs[r]; l--, r++)
+                dp[r + 1] = Math.min(dp[r + 1], dp[l] + 1);
+            for (int l = i, r = i + 1; 0 <= l && r < len && chs[l] == chs[r]; l--, r++)
+                dp[r + 1] = Math.min(dp[r + 1], dp[l] + 1);
+        }
+        return dp[chs.length];
+    }
+}