我有一个查询。我有两个整数范围,例如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