区间重叠大小

时间:2012-06-14 03:14:18

标签: python math intervals

Python中用于计算区间重叠大小的最简洁方法是什么?

如果间隔相同,

overlap([a, b], [c, d])应返回0,当它们重叠但不相同(其中N为重叠时)时返回N,如果不重叠则返回None。

感谢。

编辑overlap具有误导性,我的意思是间隔不重叠的大小。所以0是相同的。

1 个答案:

答案 0 :(得分:2)

它没有比sjr链接的问题中的接受答案简洁得多,但是:

def overlap(a,b,c,d):
    r = 0 if a==c and b==d else min(b,d)-max(a,c)
    if r>=0: return r
对于相同的间隔,

也将返回0,对于非重叠的间隔,

也将返回。