Реализации алгоритмов/Расстояние Левенштейна: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
Строка 685:
exec @retval = LevenshteinDistance 'Петрова Дарья Ивановна', 'Петрова Марья Ивановна'
select @retval
</source>
 
== Алгоритм Левенштейна на языке [[Maxscript]] ==
<source lang="maxscript">
fn LevenshteinDistance s1 s2 =
(
L1 = s1.count + 1
L2 = s2.count + 1
if L1 == 1 and L2 == 1 then return 0
else
(
m = for i = 0 to L1 collect (for j = 0 to L2 collect j)
for i = 2 to L1+1 do
(
for j = 2 to L2+1 do
(
diff = if s1[i-1] == s2[j-1] then 0 else 1
m[i][j] = amin #(m[i-1][j] + 1, m[i][j-1] + 1, m[i-1][j-1] + diff)
)
)
return m[L1+1][L2+1]
)
)
 
print (LevenshteinDistance "papa" "mama")
</source>