### levenshteinDistance

Calculates the [Levenshtein distance](https://en.wikipedia.org/wiki/Levenshtein_distance) between two strings.

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) => {
    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]);
    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++) {
            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);
            }
        }
    }
    return matrix[string2.length][string1.length];
};
```

```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 (%)
```
