Cố Trường Ca
Senior Member
Java:
class Solution {
public int strangePrinter(String s) {
int n = s.length();
int[][] dp = new int[n][n];
for (int i = 0; i < n; i++) {
dp[i][i] = 1;
}
for (int len = 2; len <= n; len++) {
for (int start = 0; start <= n - len; start++) {
int end = start + len - 1;
dp[start][end] = dp[start][end - 1] + 1;
for (int k = start; k < end; k++) {
dp[start][end] = Math.min(dp[start][k] + dp[k + 1][end], dp[start][end]);
}
if (s.charAt(start) == s.charAt(end)) {
dp[start][end] = Math.min(dp[start][end - 1], dp[start][end]);
}
}
}
return dp[0][n - 1];
}
}




Nhưng e nhìn trong đống này đâu có for hay while gì đâu ta 