var minCut = function (s) {
var n = s.length;
var arr = new Array(n).fill(0).map(() => new Array(n).fill(true));
for (var i = n - 1; i >= 0; i--) {
for (var j = i + 1; j < n; j++) {
arr[i][j] = s[i] == s[j] && arr[i + 1][j - 1];
}
}
var f = new Array(n).fill(Number.MAX_SAFE_INTEGER);
for (var i = 0; i < n; i++) {
if (arr[0][i]) {
f[i] = 0;
} else {
for (var j = 0; j < i; j++) {
if (arr[j + 1][i]) {
f[i] = Math.min(f[i], f[j] + 1);
}
}
}
}
return f[n - 1];
};
代码调试
console.log(minCut("googoo"));