我有一個查詢。我有兩個整數範圍,例如100-500和600-800。這是他們如何看:匹配整數
範圍1
start_range = 100
end_range = 500
範圍2
start_range_new = 600
end_range_new = 800
我想在我可以匹配兩個範圍(範圍1和範圍內的方法的邏輯2)使這兩個範圍完全排斥,這意味着這兩個範圍不相交。
如果兩個範圍相交,則將局部變量設爲true
,如果不是,則局部變量應爲false
。
我有一個查詢。我有兩個整數範圍,例如100-500和600-800。這是他們如何看:匹配整數
範圍1
start_range = 100
end_range = 500
範圍2
start_range_new = 600
end_range_new = 800
我想在我可以匹配兩個範圍(範圍1和範圍內的方法的邏輯2)使這兩個範圍完全排斥,這意味着這兩個範圍不相交。
如果兩個範圍相交,則將局部變量設爲true
,如果不是,則局部變量應爲false
。
如果您使用Rails的(或的ActiveSupport),你可以使用Range#overlaps?
方法:
# Compare two ranges and see if they overlap each other
# (1..5).overlaps?(4..6) # => true
# (1..5).overlaps?(7..9) # => false
如果你不想使用的ActiveSupport,可以實現它自己的幫手功能:
# Compare two ranges and see if they overlap each other
# overlaps?(1..5, 4..6) # => true
# overlaps?(1..5, 7..9) # => false
def overlaps?(one, another)
one.cover?(other.first) || other.cover?(one.first)
end
variable = !((start_range_new > end_range) || (start_range > end_range_new))
start_range = 100,end_range = 500,start_range_new = 400,end_range_new = 800,這裏400點在於範圍1,但你的回答給變量假 – user4965201
你是對的,它應該返回相反的值:)編輯。 –
a = (0..20)
b = (15..30)
def exclusive?(x,y)
return x.first > y.last || x.last < y.first
end
exclusive?(a,b) //False
爲什麼標記爲[c]? – Michael
什麼具有u嘗試至今,發表您的邏輯在這裏 – Bijendra
@邁克爾 - 這是錯誤 – user4965201