我可能会使用 Diff::LCS 之类的东西:
>> require "diff/lcs"
>> seq1 = "lorem ipsum dolor sit amet consequtor".split(" ")
>> seq2 = "lorem ipsum dolor amet sit consequtor".split(" ")
1.9.3-p194 :010 > Diff::LCS.diff(seq1, seq2).length
=> 2
它使用最长公共子序列算法(使用 LCS 获取 diff 的方法在wiki 页面上有描述)。