Delete Operation for Two Strings LeetCode solution in JavaScript

1
var minDistance = function (W1, W2) {
2
let m = W1.length,
3
n = W2.length;
4
if (m < n) [W1, W2, m, n] = [W2, W1, n, m];
5
let WA1 = W1.split(""),
6
WA2 = W2.split(""),
7
dpLast = new Uint16Array(n + 1),
8
dpCurr = new Uint16Array(n + 1);
9
for (let i = 0; i < m; i++) {
10
for (let j = 0; j < n; j++)
11
dpCurr[j + 1] =
12
WA1[i] === WA2[j] ? dpLast[j] + 1 : Math.max(dpCurr[j], dpLast[j + 1]);
13
[dpLast, dpCurr] = [dpCurr, dpLast];
14
}
15
return m + n - 2 * dpLast[n];
16
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0