我正在比较多个数组中的值。
我想标记在同一数组中同时具有“零”和“非零”的值。出于某种原因,我被卡住了。
以下是测试用例/场景:

 1. zero and zero          => ignore
 2. non-zero and non-zero  => ignore
 3. zero and non-zero      => this is what we are after!
 4. only zero              => ignore
 5. only non-zero          => ignore

到目前为止,这是我的代码:
def unique_with_zero?(*arr)
   arr.uniq!
   arr.sort!

   if arr.size == 1
      print 'ignore: ', arr, "\n"
   end

    if arr.size > 2
      print 'candidate: ', arr, "\n"
    end
end

#test cases
unique_with_zero?(30,20,40)  #false
unique_with_zero?(111,0,500) #true - zero and other non-zero values
unique_with_zero?(1,1,3,1)   #false
unique_with_zero?(0)         #false - we need multiple values
unique_with_zero?(1)         #false
unique_with_zero?(0,0)       #false

最佳答案

array.any?(&:zero?) && array.uniq.length > 1

关于ruby - 识别零和非零场景 - 具有特殊含义的一个值(零),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31550500/

10-11 01:12