public static class LevenshteinDistance
public static int Compute(string s, string t)
int[, ] d = new int[n + 1, m + 1];
for (int i = 0; i <= n; d[i, 0] = i++)
for (int j = 0; j <= m; d[0, j] = j++)
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
int cost = (t[j - 1] == s[i - 1]) ? 0 : 1;
d[i, j] = Math.Min(Math.Min(d[i - 1, j] + 1, d[i, j - 1] + 1), d[i - 1, j - 1] + cost);
public static void Main()
Console.WriteLine(LevenshteinDistance.Compute("aunt", "ant"));
Console.WriteLine(LevenshteinDistance.Compute("Sam", "Samantha"));
Console.WriteLine(LevenshteinDistance.Compute("flomax", "volmax"));