Levenshtein Distance

n x m, n x m
function levenshteinDistance(str1, str2) {
const edits = new Array(str1.length + 1);
edits[0] = new Array(str2.length + 1).fill(1).map((v, idx) => idx)
for (let i = 1; i < str1.length + 1; i++ ) {
edits[i] = new Array(str2.length + 1).fill(0);
edits[i][0] = i;
}
for (let i = 1; i < str1.length + 1; i++) {
for (let j = 1; j < str2.length + 1; j++) {
const c1 = str1[i - 1];
const c2 = str2[j - 1];
if (c1 === c2) {
edits[i][j] = edits[i - 1][j - 1];
continue;
}
edits[i][j] = Math.min(edits[i - 1][j], edits[i][j - 1], edits[i - 1][j - 1]) + 1;
}
}
console.log(edits)
return edits[str1.length][str2.length];
}
// Do not edit the line below.
exports.levenshteinDistance = levenshteinDistance;n x m, min(m, n)
Last updated