VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Python基础教程 >
  • python基础教程之在列表里添加不重叠的区间

本站最新发布   Python从入门到精通|Python基础教程
试听地址  
https://www.xin3721.com/eschool/pythonxin3721/


现有列表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]))
相关教程