如何检查Ruby中有多少字符串相似

时间:2014-07-05 09:28:49

标签: ruby

我必须检查多少例如:

caffelatte相似,所以ae相似,所以2/5字母相似, ae

例如

val1 = "caffe"
val2 = "latte"

两个输入

现在输出为“a”和“e”

1 个答案:

答案 0 :(得分:2)

如果您想知道位于同一位置的字符:

def alike(string, other)
  a = string.split(//)
  b = other.split(//)

  a.zip(b).map { |x, y| x if x == y }.compact
end

puts alike('latte', 'caffe')  # => [a, e]
puts alike('foo',   'bar')    # => []

如果您想获得匹配位置的数量:

def alike(string, other)
  a = string.split(//)
  b = other.split(//)

  a.zip(b).count { |x, y|  x == y }
end

puts alike('latte', 'caffe')  # => 2
puts alike('foo',   'bar')    # => 0