剑指 Offer II 094. 最少回文分割

127 阅读1分钟

剑指 Offer II 094. 最少回文分割

image.png

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"));