Linq下有一个非常实用的SelectMany方法,很多人却不会用(linq selectmany)
311
2022-07-31
现有列表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]))
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~