RosettaCodeData/Task/Levenshtein-distance/Lua/levenshtein-distance.lua

21 lines
418 B
Lua
Raw Permalink Normal View History

2015-02-20 00:35:01 -05:00
function leven(s,t)
if s == '' then return t:len() end
if t == '' then return s:len() end
2013-04-10 21:29:02 -07:00
2015-02-20 00:35:01 -05:00
local s1 = s:sub(2, -1)
local t1 = t:sub(2, -1)
2013-04-10 21:29:02 -07:00
2015-02-20 00:35:01 -05:00
if s:sub(0, 1) == t:sub(0, 1) then
return leven(s1, t1)
end
2013-04-10 21:29:02 -07:00
2015-02-20 00:35:01 -05:00
return 1 + math.min(
leven(s1, t1),
leven(s, t1),
leven(s1, t )
)
2013-04-10 21:29:02 -07:00
end
2015-02-20 00:35:01 -05:00
print(leven("kitten", "sitting"))
print(leven("rosettacode", "raisethysword"))