排课系统




def is_conflict(time1, time2):
"""Check if two time slots conflict."""
return time1[0] <= time2[1] and time2[0] <= time1[1]
def assign_courses(teacher_timeslots, courses):
"""Assign courses to teachers without conflicts."""
assigned = {}
for course in courses:
for teacher, times in teacher_timeslots.items():
valid_times = [t for t in times if not any(is_conflict(t, x) for x in assigned.get(teacher, []))]
if valid_times:
assigned.setdefault(teacher, []).append(valid_times[0])
break
return assigned