019f8fd211
git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15c
git-subtree-split:24f5a642af
Change-Id: I6105b3762b79126b3488359c95978cadb3efa789
23 lines
563 B
Python
23 lines
563 B
Python
|
|
def merge(xs):
|
|
xs.sort()
|
|
result = xs[0:1]
|
|
for a, b in xs[1:]:
|
|
y, z = result[-1]
|
|
if a <= z:
|
|
result[-1] = (y, max(b, z))
|
|
else:
|
|
result.append((a, b))
|
|
return result
|
|
|
|
inputs = [([(0,1),(3,5),(4,8),(10,12),(9,10)], [(0,1),(3,8),(9,12)]),
|
|
([(1,2),(2,3)], [(1,3)]),
|
|
([(1,5),(2,3)], [(1,5)]),
|
|
([(1,10),(2,6),(3,5),(7,9)], [(1,10)]),
|
|
]
|
|
for x, expected in inputs:
|
|
result = merge(x)
|
|
print(x)
|
|
print(result)
|
|
assert result == expected
|
|
print("Success!")
|