목록에 겹치지 않는 범위 추가

[1,3]가 1 내지 3 사이의 임의의 번호를 나타낸다으로리스트 A를 기존의 요소는, [X, y]는 어레이 형태로, 디지털 간격의 조각의 대표적인 예이다

(예를 들어, : [10, 25]) 목록에 추가 할 수 없습니다, True 또는 False를 반환 새로운 디지털 new_element 간격 주어진 분석하기

다음과 같은 조건을 충족해야합니다, 어떤 숫자의 새로운 범위의 목록에 추가 필요 :

  • 새로운 디지털 간격 [X, Y, Y는 X가 있어야보다 큰 삽입
  • 각 간격에 중첩 영역이 존재하지 수 번호 목록
  • 예를 들어 [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]))




추천

출처www.cnblogs.com/jiyu-hlzy/p/11938989.html