This commit is contained in:
plane000
2018-07-10 20:11:24 +01:00
parent 1c2adf84c7
commit 57e091c134
22 changed files with 2309 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
/**
* @param {string} a
* @param {string} b
*/
module.exports.distance = function(a, b) {
aL = a.length;
bL = b.length;
if (aL == 0) return aL;
if (bL == 0) return bL;
let matrix = [];
for (let i = 0; i <= bL; i++) {
matrix[i] = [i];
}
for (let i = 0; i <= aL; i++) {
matrix[0][i] = i;
}
for (let i = 1; i <= bL; i++) {
for (let j = 1; j <= aL; j++) {
if (b.charAt(i-1) == a.charAt(j-1)) {
matrix[i][j] = matrix[i-1][j-1];
} else {
matrix[i][j] = Math.min(matrix[i-1][j-1] + 1,
Math.min(matrix[ i ][j-1] + 1,
matrix[i-1][j] + 1));
}
}
}
return matrix[bL][aL];
}
// we're doing the matrix implimentation https://en.wikipedia.org/wiki/Levenshtein_distance