git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15cgit-subtree-split:24f5a642afChange-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!")
 |