我有一个哈希,如下所示:
hash = {
"Hulk" => 25,
"IronMan" => 75,
"Groot" => 51,
"Captain America" =>50,
"Spider Man" => 40,
"Thor" => 50,
"Black Panther" => 49
}
我需要找到一组超级英雄,当我将彼此的值求和时,它们的值将为100,例如,美国队长+雷神= 100。
我可以使用以下方法遍历具有索引的哈希:
hash.each_with_index { |(key,value),index| ... }
带有一个比较每个值的内部循环。
有没有更好,更简单的方法来解决这个问题?
答案 0 :(得分:-1)
我想这就是您要寻找的
resultArr = []
input.keys.each do |keyName|
input.each do |inKey, inValue|
((resultArr << [keyName, inKey]) if ((input[keyName] + inValue) == 100)) unless (keyName == inKey)
end
end
result = []
resultArr.each do |resArr| result << resArr.sort end
result.uniq!
puts result