Ctrl K

Частые проходы по пропуску

Средняя
Турникет офиса записывает каждый проход по пропуску. Журнал за один день — массив swipes, где swipes[i] = [name, time]: name — имя сотрудника, time — время прохода в 24-часовом формате из четырёх цифр, например "0745" или "2310". Сотрудник считается *частым*, если у него есть хотя бы три прохода, укладывающиеся в один час, то есть разница между самым ранним и самым поздним из них строго меньше 60 минут. Проходы в "0815" и "0915" уже не входят в один час. Все записи относятся к одним суткам, поэтому "2355" и "0005" в один час тоже не попадают. Верните имена всех частых сотрудников в любом порядке.
Пример 1
swipes=[["anna", "0910"], ["boris", "0915"], ["anna", "0955"], ["boris", "1020"], ["anna", "0930"], ["boris", "1100"]] → ['anna']

У anna три прохода в 09:10, 09:30 и 09:55 — все в пределах одного часа. У boris проходы в 09:15, 10:20 и 11:00 — никакие три не укладываются в час.

Пример 2
swipes=[["kim", "1400"], ["kim", "1430"], ["kim", "1500"]] → []

Между 14:00 и 15:00 ровно час, а это уже не одно окно, так что kim в ответ не попадает.

Пример 3
swipes=[["lee", "2350"], ["lee", "2359"], ["lee", "0005"], ["max", "0800"]] → []

Все проходы в пределах одних суток: 00:05 — это начало дня, а не продолжение 23:59, поэтому окна у lee нет.

Ограничения
  • 1 ≤ len(swipes) ≤ 100
  • 1 ≤ len(name) ≤ 10, имя состоит из строчных латинских букв
  • time — четыре цифры, корректное время от "0000" до "2359"
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиРазложить анаграммы по группам СредняяПодпоследовательность только одного слова СредняяСамые частые запросы СредняяСлово, выращенное по букве СредняяСклеить карточки контактов Средняя
загружаем Python…
Вход
swipes=[["anna", "0910"], ["boris", "0915"], ["anna", "0955"], ["boris", "1020"], ["anna", "0930"], ["boris", "1100"]]
Ожидается
['anna']

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 117 тестов на сервере, включая скрытые.