У меня тупой старый будильник с двумя кнопками: hourи minute. hourКнопка увеличивает час установленной сигнализации, а также minuteприращение минутного время набора сигнала тревоги. Тем не менее, некоторые умные дизайнеры поняли, что нажатие обеих кнопок должно иметь значение, и решили, что нажатие hourи minuteодновременное приведение будильника в положение 12:00 am
/ 0:00
. Ваша задача - смоделировать это поведение.
задача
Учитывая время начала и последовательность состояний кнопок, определите время окончания.
Начиная со времени начала, увеличивайте час для каждого вхождения (1,0)
, увеличивайте минуту для каждого вхождения (0,1)
и устанавливайте время 0:00
для каждого вхождения (1,1)
. Состояния (0,0)
следует игнорировать, поскольку они не соответствуют ни одной из нажатых кнопок.
При добавлении к минутам и часам, если минута / час превышает максимальное значение, установите для него значение 0
, т. Е. При увеличении минутного значения 59
следует установить минутное значение, 0
а при увеличении часового значения часов 23
следует установить часовое значение 0
. Приращение минуты / час значения выше их пределов не влияет на другое значение, например приращение минуты 10:59
урожайности 10:00
, а не 11:00
.
пример
Учитывая время ввода 13:58
и шаги [(0,1),(0,1),(0,1),(0,0),(1,1),(1,0)]
,
(0,1)
, Это соответствует minuteнажатию. Время пришло13:59
.(0,1)
, Это соответствует minuteнажатию. Время пришло13:00
.(0,1)
, Это соответствует minuteнажатию. Время пришло13:01
.(0,0)
, Это соответствует ни одной из нажатых кнопок. Время, без изменений, сейчас13:01
(1,1)
, Это соответствует нажатию обеих кнопок. Время пришло0:00
.(1,0)
Это соответствует hourнажатию. Время пришло1:00
.
Так как мы заканчиваем 1:00
, это выход.
I / O
Ввод будет состоять из времени и последовательности состояний кнопок. Выход - один раз.
Время ввода и время вывода может быть
- 2-кортеж
(hour, minute)
или(minute, hour)
в -24
часовое времени , например,(13, 30)
(hour
колеблется от0
до23
иminute
находится в диапазоне от0
до59
) - такой же, как предыдущий, но в
12
через час и логическое значениеam
/pm
переключатель (hour
находится в диапазоне от0
до11
или12
и1
к11
сminute
с0
к59
). - количество минут, начиная с
0:00
810 (от 0 до 1439 включительно) - любой другой формат, который кодирует ту же информацию
Последовательность состояний кнопок является представлением списка булевых 2-кортежей, например:
- список кортежей:
[(0,1),(1,0),(0,0),(1,1)]
- строка, разделенная пробелом:
"01 10 00 11"
- строка:
"01100011"
- в четвертичный период:
[1,2,0,3]
- конвертируется в целое число:
99
- любой другой формат, который кодирует ту же информацию
Тестовые случаи
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], ...]
?