Overview

Levenshtein

The Levenshtein distance is a string metric for measuring the difference

Source Code

// The Levenshtein distance is a string metric for measuring the difference 
// between two sequences. 
function LevenshteinDistance(s, t : String) : Integer;
var i, j : Integer;
begin
   var slen := Length(s);
   var tlen := Length(t);
   var d := new Integer[slen + 1, tlen + 1];
   for i := 0 to slen do d[i, 0] := i;
   for j := 0 to tlen do d[0, j] := j;
   for j := 1 to tlen do
      for i := 1 to slen do
         if s[i] = t[j] then d[i, j] := d[i-1, j-1]
         else d[i, j] := MinInt(MinInt(d[i-1, j] + 1, d[i, j-1] + 1), d[i-1, j-1] + 1);
   Result := d[slen, tlen];
end;
PrintLn('Distance between "kitten" and "sitting": ' + IntToStr(LevenshteinDistance('kitten', 'sitting')));

Result

Distance between "kitten" and "sitting": 3
On this page