【发布时间】:2015-06-14 16:43:34
【问题描述】:
给定两个大小相等的数组,我怎样才能找到不考虑位置的匹配元素的数量?
例如:
-
[0,0,5]和[0,5,5]将返回2的匹配项,因为共有一个0和一个5; -
[1,0,0,3]和[0,0,1,4]将返回匹配3,因为有两个匹配0和一个匹配1; -
[1,2,2,3]和[1,2,3,4]将返回匹配3。
我尝试了许多想法,但它们都倾向于变得相当粗糙和令人费解。我猜有一些不错的 Ruby 习语,或者可能是一个正则表达式,这将是这个解决方案的一个优雅的答案。
【问题讨论】:
-
我的第一个猜测是
array_one & array_two.length,但这不包括独特的元素 -
好问题,说得好。
-
@CarySwoveland:完全同意你的观点,但标题含糊不清——有同样问题的人不太可能看到这篇文章。附言我也很难为此制定一个不繁琐的标题..
-
@suslov,你说得有道理。怎么样,“确定一个数组中将 1-1 映射到第二个数组中相同元素的元素的数量。”?
-
@CarySwoveland,喜欢这张照片!这太棒了。对于这个措辞不佳的问题,我很抱歉,但我有一段时间用文字表达了一些例子中更容易展示的内容。感谢您的所有帮助。