Ctrl K

Тревога по пропускам

Средняя
В коворкинге двери открываются электронными пропусками. Система записывает каждый проход: names[i] — имя владельца пропуска, times[i] — время прохода в формате "HH:MM" (24 часа). Все записи относятся к одним суткам и идут в произвольном порядке. Система поднимает тревогу по человеку, если он прошёл по пропуску **три или больше раз в пределах одного часа**: между первым и последним из этих проходов не больше 60 минут. Например, "10:00" и "11:00" укладываются в час, а "22:51" и "23:52" — уже нет. Верните имена всех, по кому сработала тревога, без повторов и в алфавитном порядке.
Пример 1
names=['vera', 'oleg', 'vera', 'oleg', 'vera', 'oleg'], times=['08:30', '09:00', '09:10', '09:45', '09:30', '10:01'] → ['vera']

У vera проходы в 08:30, 09:10 и 09:30 — все три уложились в 60 минут. У oleg первый и третий проход разделяет 61 минута, тревоги нет.

Пример 2
names=['kim', 'kim', 'kim', 'ann', 'ann', 'ann'], times=['23:00', '00:10', '23:59', '13:00', '13:30', '14:00'] → ['ann']

Время берётся в пределах одних суток, так что 00:10 — это утро, а не следующий день: у kim тревоги нет. У ann 13:00 и 14:00 отстоят ровно на час, это ещё считается.

Ограничения
  • 1 ≤ len(names) ≤ 10⁵
  • len(times) == len(names)
  • times[i] имеет вид "HH:MM", 00 ≤ HH ≤ 23, 00 ≤ MM ≤ 59
  • 1 ≤ len(names[i]) ≤ 10, только строчные латинские буквы
  • Пары (names[i], times[i]) не повторяются
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиРазложить анаграммы по группам СредняяПодпоследовательность только одного слова СредняяСамые частые запросы СредняяСлово, выращенное по букве СредняяСклеить карточки контактов Средняя
загружаем Python…
Вход
names=['vera', 'oleg', 'vera', 'oleg', 'vera', 'oleg'], times=['08:30', '09:00', '09:10', '09:45', '09:30', '10:01']
Ожидается
['vera']

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