blob: 1093565d4bfb744a4aa0fd7c058a7158a2a0b56a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# Uses python3
import sys
from collections import namedtuple
Segment = namedtuple('Segment', 'start end')
def getSortedListOfSegs(segList):
segList.sort()
return segList
def getOptimalPoints(segList):
if len(segList) == 1:
return [segList[0].start]
if segList[0].end <= segList[1].start:
result = [segList[0].end]
if segList[1].start == segList[1].end:
if len(segList) == 2:
return result
else:
result.extend(getOptimalPoints(segList[2:]))
return result
else:
if segList[0].end >= segList[1].end:
result = [segList[1].end]
del(segList[1])
result.extend(getOptimalPoints(segList[1:]))
return result
else:
result = [segList[0].end]
result.extend(getOptimalPoints(segList[1:]))
return result
|