如何编辑此Levenshtein方法以返回实际差异?

时间:2014-12-16 22:05:59

标签: ruby function methods return levenshtein-distance

我在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测试测试“在差异周围斜线,以便我可以以不同的方式显示它。 (我仍然想要这个数字。)

0 个答案:

没有答案