我需要告诉一个数组是否包含具有重复项的另一个数组的所有元素.
[1,2,3].contains_all? [1,2] #=> true
[1,2,3].contains_all? [1,2,2] #=> false (this is where (a1-a2).empty? fails)
[2,1,2,3].contains_all? [1,2,2] #=> true
Run Code Online (Sandbox Code Playgroud)
因此第一个数组必须包含第二个数组中每个唯一元素的数量或相等数量.
对于那些使用数组作为集合的人来说,这个问题可以解决它,但是我需要控制重复数据.
在Ruby 1.9.3p194上
def bench
puts Benchmark.measure {
10000.times do
[1,2,3].contains_all? [1,2]
[1,2,3].contains_all? [1,2,2]
[2,1,2,3].contains_all? [1,2,2]
end
}
end
Run Code Online (Sandbox Code Playgroud)
结果是:
Rohit 0.100000 0.000000 0.100000 ( 0.104486)
Chris 0.040000 0.000000 0.040000 ( 0.040178)
Sergio 0.160000 0.020000 0.180000 ( 0.173940)
sawa 0.030000 0.000000 0.030000 ( 0.032393)
Run Code Online (Sandbox Code Playgroud)
@a1 = (1..10000).to_a
@a2 = (1..1000).to_a
@a3 = (1..2000).to_a
def …
Run Code Online (Sandbox Code Playgroud) 我试图比较两个Ruby数组,以验证第一个数组的所有元素都包含在第二个数组中.(不需要反向.)
例如:
a = ["hello", "goodbye"]
b = ["hello", "goodbye", "orange"]
Run Code Online (Sandbox Code Playgroud)
这应该返回true.
但是,我无法找到一种方法可以让我这样做.任何帮助,将不胜感激!