現有列表a, a中元素是如[x,y]格式的數組,代表一段數字區間, 如[1,3]表示從1到3之間的任何數字 判斷給定的新數字區間new_element(例如: [10, 25])能不能添加到列表a中,返回True or False 要求任何被添加進入列表a的新數字區間,必須滿足以下條件: 新插入的數 ...
現有列表a, a中元素是如[x,y]格式的數組,代表一段數字區間, 如[1,3]表示從1到3之間的任何數字
判斷給定的新數字區間new_element(例如: [10, 25])能不能添加到列表a中,返回True or False
要求任何被添加進入列表a的新數字區間,必須滿足以下條件:
- 新插入的數字區間[x,y]中,y必須大於x
- 列表a中每一組數字區間不能存在重疊區域
- 例如[3, 5]和[7, 8]之間沒有重疊,但是[3,5]和[4,6]有重疊的區域(註意: [3, 5]和[5, 6]之間認為是無重疊)
可以得知區間重疊的形式只有四種
a = [
[6, 6.9],
[3, 5.6],
[12, 22],
[37.5, 97.8]
]
def can_add_in(a, new_element):
# y 必須大於 x
if new_element[1] <= new_element[0]:
return False
# 和已存在的每個區間進行比較
for i in a:
# print(i)
# 1 和 4 的情況:新區間的起始在已有區間內
if i[1] > new_element[0] and i[0] <= new_element[0]:
return False
# 2 和 3 的情況:已有區間的起始在新區間內
elif i[0] >= new_element[0] and i[0] < new_element[1]:
return False
return True
print(can_add_in(a, [6.9, 12]))