1312.js
/** ------------------------------------------------------------------------------
*
* 2023-04-22
* 1312. Minimum Insertion Steps to Make a String Palindrome
* https://leetcode.com/problems/minimum-insertion-steps-to-make-a-string-palindrome/
*
------------------------------------------------------------------------------ */
/**
* @param {string} s
* @return {number}
*/
var minInsertions = function (s) {
let dp = [];
const n = s.length;
for (let i = 0; i <= n; i++) {
let arr = [];
for (let j = 0; j <= n; j++) {
arr.push(0);
}
dp.push(arr);
}
let rev = s.split("").reverse().join("");
for (let row = 1; row <= n; row++) {
for (let col = 1; col <= n; col++) {
if (s[row - 1] === rev[col - 1]) dp[row][col] = 1 + dp[row - 1][col - 1];
else dp[row][col] = Math.max(dp[row - 1][col], dp[row][col - 1]);
}
}
return n - dp[n][n];
};
console.log(minInsertions("leetcode"));