确定数组中的元素是否相应排列

时间:2015-09-26 11:37:17

标签: arrays ruby

我有数组basket = ["O", "P", "W", "G"]sack = ["G", "P", "O", "W"]。如何比较这些数组以确定元素是否按相同顺序排列?

3 个答案:

答案 0 :(得分:3)

您可以使用:

basket == sack #=> false, for given values

如果您比较它们,请使用相同的顺序:

basket.sort == sack.sort #=> true

另外,请检查" Comparing two arrays in Ruby"有关比较数组的讨论。

答案 1 :(得分:0)

如果两个数组都可以包含不同数量的元素以及可能包含一些额外元素,并且您想要确定这两个数组共有的那些元素是否以完全相同的顺序出现,那么,您可以执行以下操作:

basket = ["D", "O", "P", "W", "G", "C"] 
sack = ["Z", "O", "W", "P", "G", "X"]

p (basket - (basket - sack)) == (sack - (sack - basket))

答案 2 :(得分:0)

这是我能够提出的解决方案。

ordered = 0
disordered = 0
index = 0
while index < basket.length

  if basket[index] == sack[index] 
       ordered+= 1     
  elsif basket.include?(sack[index]) && (basket[index] != sack[index])
        disordered+= 1
  end
  index += 1
end

puts" there are #{ordered} ordered common items and #{disordered} disordered common items"

我希望它有所帮助。