Ho una stupida vecchia sveglia con due pulsanti: houre minute. Il hourpulsante aumenta l'ora di una sveglia impostata e minuteaumenta la durata dei minuti di una sveglia impostata. Tuttavia, alcuni designer intelligenti si sono resi conto che la pressione contemporanea di entrambi i pulsanti avrebbe dovuto avere un significato e hanno deciso che premendo houre minutecontemporaneamente si sarebbe impostato l'allarme su 12:00 am/ 0:00. Il tuo compito è simulare questo comportamento.
Compito
Data l'ora di inizio e una sequenza di stati dei pulsanti, capire l'ora di fine.
A partire dall'ora di inizio, incrementa l'ora per ogni occorrenza di (1,0), incrementa il minuto per ogni occorrenza di (0,1)e imposta l'ora su 0:00per ogni occorrenza di (1,1). Gli stati (0,0)devono essere ignorati perché non corrispondono a nessuno dei due pulsanti.
Quando si aggiunge a minuti e ore, se il minuto / ora supera il massimo, impostarlo su 0, ovvero se si aumenta un valore di minuto si 59dovrebbe impostare il valore di minuto su 0e incrementando un valore di ora si 23dovrebbe impostare il valore di ora su 0. L'incremento dei valori minuto / ora al di sopra dei loro limiti non influisce sull'altro valore, ad esempio incrementando il minuto dei 10:59rendimenti 10:00, no 11:00.
Esempio
Dati i tempi di input 13:58e i passaggi [(0,1),(0,1),(0,1),(0,0),(1,1),(1,0)],
(0,1). Questo corrisponde ad minuteessere premuto. I tempi sono adesso13:59.(0,1). Questo corrisponde ad minuteessere premuto. I tempi sono adesso13:00.(0,1). Questo corrisponde ad minuteessere premuto. I tempi sono adesso13:01.(0,0). Ciò corrisponde a nessuno dei due pulsanti premuti. Il tempo, intatto, è adesso13:01(1,1). Ciò corrisponde alla pressione di entrambi i pulsanti. I tempi sono adesso0:00.(1,0)Questo corrisponde ad houressere premuto. I tempi sono adesso1:00.
Da quando finiamo con 1:00, è l'output.
I / O
L'input consisterà in un tempo e una sequenza di stati dei pulsanti. L'output è una sola volta.
Il tempo di ingresso e il tempo di uscita possono essere
- una tupla di 2
(hour, minute)o(minute, hour)in24-ora come(13, 30)(hourintervalli da0a23eminuteintervalli da0a59) - uguale al tempo precedente ma in
12-ora e un interruttore booleanoam/pm(hourvaria da0a11o12e1a11conminuteda0a a59). - un certo numero di minuti da allora
0:00da 810 (da 0 a 1439, incluso) - qualsiasi altro formato che codifichi le stesse informazioni
La sequenza degli stati dei pulsanti è una rappresentazione di un elenco di 2 tuple booleane, ad esempio:
- un elenco di tuple:
[(0,1),(1,0),(0,0),(1,1)] - una stringa delimitata da spazi:
"01 10 00 11" - una stringa:
"01100011" - in quaternario:
[1,2,0,3] - convertito in un numero intero:
99 - qualsiasi altro formato che codifichi le stesse informazioni
Casi test
time,steps -> output
06:49,[(0, 1)] -> 06:50
12:23,[(1, 0)] -> 13:23
02:23,[(0, 1), (1, 0)] -> 03:24
21:40,[(0, 1), (0, 1), (0, 1), (0, 1)] -> 21:44
13:10,[(0, 1), (0, 1), (0, 1), (0, 1), (1, 0), (1, 1), (0, 1), (0, 1)] -> 00:02
21:33,[(1, 0), (0, 1), (1, 0), (0, 1)] -> 23:35
14:21,[(0, 1), (0, 1), (0, 1)] -> 14:24
02:39,[(0, 0), (0, 1)] -> 02:40
16:07,[(0, 1), (0, 1), (0, 1), (0, 1), (1, 0), (1, 0), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (0, 1)] -> 19:16
17:55,[(0, 1), (1, 0), (0, 1)] -> 18:57
15:55,[(1, 0), (1, 0), (1, 0), (0, 1), (0, 1), (0, 1), (1, 0), (1, 0), (0, 1), (1, 0), (1, 0), (0, 1), (1, 0)] -> 23:00
22:11,[(0, 1), (1, 0), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1)] -> 00:19
03:58,[(1, 0), (0, 0), (0, 0), (0, 1), (0, 1), (1, 0), (1, 0), (0, 1), (0, 1), (1, 0), (0, 1)] -> 07:03
13:02,[(0, 1), (1, 0), (0, 1), (1, 0), (0, 1), (0, 1), (1, 0)] -> 16:06
04:37,[(1, 0), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (1, 0), (0, 1), (1, 0)] -> 08:47
00:01,[(0, 1), (1, 0), (1, 0), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (0, 1)] -> 03:08
02:58,[(1, 0), (1, 0), (0, 1)] -> 04:59
01:43,[(0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (1, 0), (0, 1)] -> 04:52
07:54,[(1, 0), (0, 1), (1, 0), (1, 0), (1, 1)] -> 00:00
09:33,[(0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1)] -> 10:38
09:01,[(0, 1), (0, 1)] -> 09:03
19:04,[(0, 1), (1, 0), (0, 1), (1, 0)] -> 21:06
11:17,[(0, 1), (1, 0), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (1, 1), (0, 1), (0, 1)] -> 00:02
19:32,[(0, 1), (1, 0), (0, 1), (1, 0), (1, 0), (1, 0)] -> 23:34
17:31,[(0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (1, 0), (0, 1), (0, 0), (1, 1), (0, 1)] -> 00:01
06:46,[(0, 1), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (1, 0), (1, 0), (0, 1), (0, 1), (0, 1), (1, 0), (1, 0), (0, 1), (0, 1), (0, 1), (1, 0), (0, 1), (1, 0), (0, 1), (0, 1), (1, 0), (0, 1), (0, 1), (0, 1), (1, 0), (1, 0), (0, 1), (1, 0), (0, 1), (0, 1), (0, 1), (0, 1), (0, 1)] -> 18:16
[[initialHour, initialMinute], [hourPressed1, minuitePressed1], [hourPressed2, minuitePressed2], ...]?