Levenshtein distance/Alignment: Difference between revisions
Content added Content deleted
m (→{{header|Sidef}}: replaced "each" with "times") |
m (→{{header|Sidef}}: modified the code to work with Sidef 2.30) |
||
Line 475: | Line 475: | ||
var A = [] |
var A = [] |
||
s |
for i in ^s { A[i][0]{<d s t>} = (i, s.ft(1, i).join, '~' * i) } |
||
t |
for i in ^t { A[0][i]{<d s t>} = (i, '-' * i, t.ft(1, i).join) } |
||
s.end.times { |i| |
s.end.times { |i| |
||
Line 484: | Line 484: | ||
var min = Math.min(A[i-1][j]{:d}, A[i][j-1]{:d}, A[i-1][j-1]{:d}) |
var min = Math.min(A[i-1][j]{:d}, A[i][j-1]{:d}, A[i-1][j-1]{:d}) |
||
) |
) |
||
A[i][j]{ |
A[i][j]{<s t>} = @|(A[i-1][j]{:d} == min |
||
? [A[i-1][j]{:s}+s[i], A[i-1][j]{:t}+'-'] |
? [A[i-1][j]{:s}+s[i], A[i-1][j]{:t}+'-'] |
||
: (A[i][j-1]{:d} == min |
: (A[i][j-1]{:d} == min |
||
Line 491: | Line 491: | ||
} |
} |
||
else { |
else { |
||
A[i][j]{ |
A[i][j]{<d s t>} = ( |
||
A[i-1][j-1]{:d}, |
A[i-1][j-1]{:d}, |
||
A[i-1][j-1]{:s}+s[i], |
A[i-1][j-1]{:s}+s[i], |
||
Line 499: | Line 499: | ||
} |
} |
||
} |
} |
||
return [A[-1][-1]{ |
return [A[-1][-1]{<s t>}] |
||
} |
} |
||