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
34
35
36
37
38
39
40
41
|
#!/usr/bin/env python3
# Challenge 050
#
# TASK #1
# Merge Intervals
# Write a script to merge the given intervals where ever possible.
#
# [2,7], [3,9], [10,12], [15,19], [18,22]
#
# The script should merge [2, 7] and [3, 9] together to return [2, 9].
#
# Similarly it should also merge [15, 19] and [18, 22] together to return
# [15, 22].
#
# The final result should be something like below:
#
# [2, 9], [10, 12], [15, 22]
import sys
def merge_intervals(intervals):
done = False
while not done:
done = True
for i in range(len(intervals)-1):
a = intervals[i]
b = intervals[i+1]
if a[1] >= b[0]:
a[1] = max(a[1], b[1])
intervals = intervals[0:i+1] + intervals[i+2:]
done = False
break
return intervals
intervals = []
for i in range(1, len(sys.argv), 2):
intervals.append([int(sys.argv[i]), int(sys.argv[i+1])])
merged = merge_intervals(intervals)
print(", ".join("["+str(x[0])+", "+str(x[1])+"]" for x in merged))
|