1

两个 Ruby 版本是:1.8.7(学校使用)与 1.9.3(当前版本,我的系统上有)。

只是好奇 1.9.3 中有什么不同导致以下内容无法正常工作。true如果列表中的所有元素都相同,则函数输出,false如果不完全相同。

e.g.
[1,1,1] => true
[1,2,1] => false

在 Ruby 1.9.4 中,

odd_one_out_in_list?([1,1,1])
=> false  #which is should output 'true'

在 Ruby 1.8.7 中,

odd_one_out_in_list?([1,1,1])
=> true  #which is good

下面的逻辑在我看来没问题。1.9.4 有什么不同?我已经检查过: Ruby 1.8 和 Ruby 1.9 之间有什么区别,但我无法在那里找到答案。

这是我的功能:

def odd_one_out_in_list?(list)
  sorted_list = list.sort
  if sorted_list[0] == sorted_list[list.length-1]
    return true
  else
    return false
  end
end
4

1 回答 1

0

试试 defodd_one_out_in_list?(list); list.uniq.size == 1; 结尾。更简单,可能更快

于 2014-03-31T16:02:03.043 回答