Saya memiliki jam alarm tua yang bodoh dengan dua tombol: hourdan minute. The hourtombol increment jam alarm set, dan minutekenaikan waktu menit alarm set. Namun, beberapa perancang pintar menyadari bahwa menekan kedua tombol pada saat yang sama harus memiliki makna, dan memutuskan bahwa menekan hourdan minutesecara bersamaan akan menyebabkan alarm diatur ke 12:00 am
/ 0:00
. Tugas Anda adalah untuk mensimulasikan perilaku ini.
Tugas
Diberikan waktu mulai dan urutan status tombol, cari tahu waktu akhir.
Mulai dari waktu mulai, naikkan jam untuk setiap kemunculan (1,0)
, tambah menit untuk setiap kemunculan (0,1)
, dan atur waktu untuk 0:00
untuk setiap kemunculan (1,1)
. Status (0,0)
harus diabaikan karena tidak sesuai dengan tombol yang ditekan.
Ketika menambahkan ke menit dan jam, jika menit / jam berjalan di atas maksimum, atur ke 0
, yaitu, penambahan nilai menit 59
harus mengatur nilai menit ke 0
dan kenaikan nilai jam 23
harus mengatur nilai jam 0
. Menambah nilai menit / jam di atas batasnya tidak memengaruhi nilai lainnya, misalnya menambah menit 10:59
hasil 10:00
, bukan 11:00
.
Contoh
Mengingat waktu 13:58
dan langkah input [(0,1),(0,1),(0,1),(0,0),(1,1),(1,0)]
,
(0,1)
. Ini sesuai dengan minutepenekanan. Waktunya sekarang13:59
.(0,1)
. Ini sesuai dengan minutepenekanan. Waktunya sekarang13:00
.(0,1)
. Ini sesuai dengan minutepenekanan. Waktunya sekarang13:01
.(0,0)
. Ini sesuai dengan tidak ada tombol yang ditekan. Waktu, tidak terpengaruh, sekarang13:01
(1,1)
. Ini sesuai dengan kedua tombol yang sedang ditekan. Waktunya sekarang0:00
.(1,0)
Ini sesuai dengan hourpenekanan. Waktunya sekarang1:00
.
Karena kita berakhir dengan 1:00
, itu adalah output.
I / O
Input akan terdiri dari waktu dan urutan status tombol. Outputnya adalah satu kali.
Waktu input dan waktu output mungkin
- 2-tupel
(hour, minute)
atau(minute, hour)
dalam24
-jam waktu seperti(13, 30)
(hour
berkisar dari0
ke23
danminute
berkisar dari0
ke59
) - sama seperti sebelumnya tetapi dalam
12
waktu -hour dan Booleanam
/pm
switch (hour
berkisar dari0
ke11
atau12
dan1
untuk11
denganminute
dari0
ke59
). - beberapa menit sejak
0:00
seperti 810 (dari 0 hingga 1439, inklusif) - format lain yang menyandikan informasi yang sama
Urutan status tombol adalah representasi dari daftar Boolean 2-tupel, misalnya:
- daftar tuple:
[(0,1),(1,0),(0,0),(1,1)]
- string yang dibatasi ruang:
"01 10 00 11"
- Sebuah benang:
"01100011"
- di Kuarter:
[1,2,0,3]
- dikonversi menjadi integer:
99
- format lain yang menyandikan informasi yang sama
Uji Kasus
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], ...]
?