我有一个带两个按钮的笨拙的旧闹钟: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
,所以它是输出。
输入输出
输入将包含一个时间和一系列按钮状态。输出是单个时间。
输入时间和输出时间可能是
(hour, minute)
或(minute, hour)
以24
小时为单位的2元组,例如(13, 30)
(hour
范围从0
至23
,minute
范围从0
至59
)- 同前,但在
12
-Hour时间和布尔am
/pm
开关(hour
范围为0
到11
或12
并1
以11
与minute
从0
至59
)。 - 此后的分钟数,
0:00
例如810(从0到1439,包括0) - 编码相同信息的任何其他格式
按钮状态的序列表示布尔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], ...]
?