Алгоритмы и структуры данных · 16 из 17
Слить пересекающиеся смены
Водители отмечают, с какого по какой час они на линии. Отметки наслаиваются: кто-то вышел с девяти до двенадцати, кто-то с одиннадцати до часу. Для графика нужны сплошные промежутки, когда машины были на линии хоть какие-то.
Что сделать
Слейте отметки водителей в сплошные промежутки, когда машины были на линии.
Что приходит
smeny— список пар(начало, конец); менять его нельзя
Что вернуть
Список слитых промежутков-кортежей по возрастанию начала; пересекающиеся и соприкасающиеся сливаются: (9, 12) и (12, 14) — (9, 14).
Допишите функцию slit_smeny в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой
slit_smeny([(9, 12), (11, 13), (15, 16), (16, 18)])
[(9, 13), (15, 18)]
Функция принимает список смен — пар «начало и конец» (целые, начало не больше конца). Возвращает список слитых промежутков, по возрастанию начала. Пересекающиеся и соприкасающиеся смены сливаются в одну: (9, 12) и (12, 14) дают (9, 14). Промежутки возвращаются кортежами. Исходный список не меняется. Пустой список даёт пустой список.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.