From f0e1590d5ed8754ae120eef3eb92d57b7d777107 Mon Sep 17 00:00:00 2001 From: Angelos Chalaris Date: Mon, 26 Feb 2018 17:32:09 +0200 Subject: [PATCH] Update levenshteinDistance.md --- snippets_archive/levenshteinDistance.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/snippets_archive/levenshteinDistance.md b/snippets_archive/levenshteinDistance.md index 08e64cf75..5100d4d30 100644 --- a/snippets_archive/levenshteinDistance.md +++ b/snippets_archive/levenshteinDistance.md @@ -1,22 +1,23 @@ ### levenshteinDistance -Calculates the [levenshteinDistance](https://en.wikipedia.org/wiki/Levenshtein_distance) between two strings. +Calculates the [Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance) between two strings. -Calculates the number of changes(substitution,deletion,addition) required to convert `string1` to `string2`. Can also be required to compare two strings as shown in example. +Calculates the number of changes (substitutions, deletions or additions) required to convert `string1` to `string2`. +Can also be used to compare two strings as shown in the second example. ``` js -const levenshteinDistance = (string1,string2) => { +const levenshteinDistance = (string1, string2) => { if(string1.length === 0) return string2.length; if(string2.length === 0) return string1.length; - let matrix = Array(string2.length+ 1).fill(0).map((x,i) => [i]); + let matrix = Array(string2.length + 1).fill(0).map((x,i) => [i]); matrix[0] = Array(string1.length + 1).fill(0).map((x,i) => i); - for(let i = 1;i <= string2.length;i++){ - for(let j = 1;j<=string1.length; j++){ + for(let i = 1; i <= string2.length; i++){ + for(let j = 1; j<=string1.length; j++){ if(string2[i-1] === string1[j-1]){ matrix[i][j] = matrix[i-1][j-1]; } else{ - matrix[i][j] = Math.min(matrix[i-1][j-1]+1,matrix[i][j-1]+1,matrix[i-1][j]+1); + matrix[i][j] = Math.min(matrix[i-1][j-1]+1, matrix[i][j-1]+1, matrix[i-1][j]+1); } } } @@ -26,6 +27,6 @@ const levenshteinDistance = (string1,string2) => { ```js levenshteinDistance('30-seconds-of-code','30-seconds-of-python-code'); // 7 -const compareStrings = (string1,string2) => (100 - levenshteinDistance(string1,string2)/Math.max(string1.length,string2.length)); -compareStrings('30-seconds-of-code','30-seconds-of-python-code'); // 99.72 (%) +const compareStrings = (string1,string2) => (100 - levenshteinDistance(string1,string2) / Math.max(string1.length,string2.length)); +compareStrings('30-seconds-of-code', '30-seconds-of-python-code'); // 99.72 (%) ```