我在wiki上找到了这个ruby方法,它找到了两个字符串之间的差异数。
def levenshtein(first, second)
matrix = [(0..first.length).to_a]
(1..second.length).each do |j|
matrix << [j] + [0] * (first.length)
end
(1..second.length).each do |i|
(1..first.length).each do |j|
if first[j-1] == second[i-1]
matrix[i][j] = matrix[i-1][j-1]
else
matrix[i][j] = [
matrix[i-1][j],
matrix[i][j-1],
matrix[i-1][j-1],
].min + 1
end
end
end
return matrix.last.last
end
如何编辑它以便它还返回两个字符串之间的物理差异,这意味着如果我要输入“test test test test”和“test tebt test test”,它将返回“test te / b / t测试测试“在差异周围斜线,以便我可以以不同的方式显示它。 (我仍然想要这个数字。)