Today, There is a discussion on Levenshtein distance. How is working, really exciting.

**Levenshtein distance** is a string metric for measuring the difference between two sequences. Informally, the Levenshtein distance between two words is the minimum number of single-character edits (i.e. insertions, deletions or substitutions) required to change one word into the other

For example, the Levenshtein distance between “kitten” and “sitting” is 3, since the following three edits change one into the other, and there is no way to do it with fewer than three edits:

**k**itten →**s**itten (substitution of “s” for “k”)- sitt
**e**n → sitt**i**n (substitution of “i” for “e”) - sittin → sittin
**g**(insertion of “g” at the end).

On the surfing found a resource of online calculator for Levenshtein distance.

Online calculator: Levenshtein Distance

But how is this possible. Searching for an algorithm. I found pseudo code

` `

// len_s and len_t are the number of characters in string s and t respectively

int LevenshteinDistance(string s, int len_s, string t, int len_t)

{

/* base case: empty strings */

if (len_s == 0) return len_t;

if (len_t == 0) return len_s;

/* test if last characters of the strings match */

if (s[len_s-1] == t[len_t-1])

cost = 0;

else

cost = 1;

/* return minimum of delete char from s, delete char from t, and delete char from both */

return minimum(LevenshteinDistance(s, len_s - 1, t, len_t ) + 1,

LevenshteinDistance(s, len_s , t, len_t - 1) + 1,

LevenshteinDistance(s, len_s - 1, t, len_t - 1) + cost);

}

Now I am trying to write a program in my favourite java.

Hope I can do it.

Advertisements