Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from datetime import datetime
- def parse_time(time_str):
- return datetime.strptime(time_str, "%H:%M")
- def find_overlap(event1, event2):
- start1, end1 = map(parse_time, event1)
- start2, end2 = map(parse_time, event2)
- if max(start1, start2) <= min(end1, end2):
- return True, max(start1, start2).strftime("%H:%M"), min(end1, end2).strftime("%H:%M")
- return False
- def find_overlap_multiple(events):
- events = sorted(events, key=lambda x: parse_time(x[0]))
- start, end = parse_time(events[0][0]), parse_time(events[0][1])
- for event in events[1:]:
- event_start, event_end = map(parse_time, event)
- start, end = max(start, event_start), min(end, event_end)
- if start > end:
- return False
- return True, start.strftime("%H:%M"), end.strftime("%H:%M")
- print(find_overlap(["02:15", "04:00"], ["04:00", "06:00"]))
- print(find_overlap(["01:00", "02:35"], ["01:25", "06:00"]))
- print(find_overlap(["10:15", "11:15"], ["14:30", "16:40"]))
- print(find_overlap_multiple([["01:00", "03:00"], ["02:00", "04:00"], ["02:30", "05:00"]]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement