1class Solution {23public int strangePrinter(String s) {4if (s.equals("")) return 0;5int len = s.length();6int[][] dp = new int[len][len];7for (int i = 0; i < len; i++) dp[i][i] = 1;8for (int l = 2; l <= len; l++) {9for (int i = 0; i < len && l + i - 1 < len; i++) {10int j = l + i - 1;11dp[i][j] = dp[i][j - 1] + (s.charAt(i) == s.charAt(j) ? 0 : 1);12for (int k = i + 1; k < j; k++) {13if (s.charAt(k) == s.charAt(j)) {14dp[i][j] = Math.min(dp[i][j], dp[i][k - 1] + dp[k][j - 1]);15}16}17}18}19return dp[0][len - 1];20}21}