int LevenshteinDistance(char str1[1..lenStr1], char str2[1..lenStr2])
// d es una tabla con lenStr1+1 filas y lenStr2+1 columnas
declare int d[0..lenStr1, 0..lenStr2]
// i y j se utiliza para iterar sobre str1 y str2
declare int i, j, cost
for i from 0 to lenStr1
d[i, 0] := i
for j from 0 to lenStr2
d[0, j] := j
for i from 1 to lenStr1
for j from 1 to lenStr2
if str1[i] = str2[j] then cost := 0
else cost := 1
d[i, j] := minimum(
d[i-1, j] + 1, // supresión
d[i, j-1] + 1, // inserción
d[i-1, j-1] + cost // sustitución
)
return d[lenStr1, lenStr2]