Este desafío se inspiró en gran medida en esta publicación de Stack Overflow .
Desafío
Dado un grupo de clientes en términos de cuándo ingresan a una habitación y cuándo salen, determine el período de tiempo en que la habitación tiene un número máximo de personas. La resolución del tiempo debe ser al minuto.
Por ejemplo, si hay tres clientes 8 - 10
, 9 - 11
, 10 - 12
, entonces la respuesta correcta sería 9 - 11
; Durante este período, hay dos clientes en la sala, que es el más grande posible.
Entrada
La entrada será una lista de pares de alguna forma. Puede ser una lista de 2 tuplas, una lista de longitud par con elementos intercalados, etc., cualquier formato de entrada razonable. Los horarios se pueden dar en cualquier formato razonable, ya sea en 12 o 24 horas. También puede ingresar el tiempo como el número de minutos después de la medianoche.
Salida
La salida debe ser una lista de pares de alguna forma, pero la salida es más estricta. La salida no puede ser una lista plana, debe ser una lista de 2 tuplas o una lista de listas, etc. Las horas pueden salir en cualquier formato razonable, ya sea en 12 o 24 horas. También puede mostrar el tiempo como el número de minutos después de la medianoche.
Ejemplos
input
output
INPUT
08:00 - 10:00
09:00 - 11:00
10:00 - 12:00
OUTPUT
09:00 - 11:00
INPUT
08:20 - 09:20
09:00 - 09:10
08:00 - 09:30
08:50 - 10:40
OUTPUT
09:00 - 09:10
INPUT
08:00 - 10:00
09:00 - 10:00
09:30 - 11:00
OUTPUT
09:30 - 10:00 # The output is not always in the input list
INPUT
00:00 - 02:00
01:00 - 03:00
04:00 - 06:00
05:00 - 07:00
OUTPUT # This is the expected output for when there are multiple time ranges with the same "business".
01:00 - 02:00
05:00 - 06:00
Puede suponer que la segunda vez en un par siempre será después de la primera. Los rangos de tiempo no se ejecutarán durante la medianoche.
09:00 - 10:00, 10:00 - 11:00
una salida válida para el primer caso de prueba?