Questa sfida è stata fortemente ispirata da questo post Stack Overflow .
Sfida
Dato un gruppo di clienti in termini di quando entrano in una stanza e quando escono, determinare il periodo (i) di tempo in cui la stanza ha un numero massimo di persone. La risoluzione temporale dovrebbe essere al minuto.
Ad esempio, se ci sono tre clienti 8 - 10, 9 - 11, 10 - 12, quindi la risposta corretta sarebbe 9 - 11; durante questo periodo di tempo, ci sono due clienti nella stanza, che è il più grande possibile.
Ingresso
L'input sarà un elenco di coppie in qualche forma. Può essere un elenco di 2 tuple, un elenco di lunghezza pari con elementi interlacciati, ecc., Qualsiasi formato di input ragionevole. I tempi possono essere indicati in qualsiasi formato ragionevole, in 12 o 24 ore. È inoltre possibile inserire l'ora come numero di minuti trascorsi a mezzanotte.
Produzione
L'output dovrebbe essere un elenco di coppie in qualche forma, ma l'output è più rigoroso. L'output non può essere un elenco semplice, deve essere un elenco di 2 tuple o un elenco di elenchi, ecc. I tempi possono essere emessi in qualsiasi formato ragionevole, in 12 o 24 ore. È inoltre possibile emettere il tempo come il numero di minuti trascorsi a mezzanotte.
Esempi
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
Puoi presumere che la seconda volta in una coppia sarà sempre dopo la prima volta. Gli intervalli di tempo non dureranno oltre la mezzanotte.
09:00 - 10:00, 10:00 - 11:00un output valido per il primo caso di test?