1

Ruby の 2 つのバージョンは、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 に答える