Anonymous user
Levenshtein distance/Alignment: Difference between revisions
→{{header|Ruby}}
(Added Ruby) |
|||
Line 359:
=={{header|Ruby}}==
{{trans|Tcl}}
uses "lcs" from [[Longest common subsequence#Ruby|here]]
<lang ruby>require 'lcs'
def levenshtein_align(a, b)
apos, bpos = LCS.new(a, b).
c = ""
Line 371 ⟶ 370:
dx = dy = 0
apos.zip(bpos) do |x,y|
if diff
dx
c += "-" *
elsif
d += "-" * n▼
end
c += a[x0+1..x]
Line 385 ⟶ 383:
y0 = y
end
c += a[x0+1..-1]
d += b[y0+1..-1]
▲ c += "-" * (bl+x0-y0-al)
▲ elsif bl+x0 < al+y0
end
[c, d]
|