1629. 按键持续时间最长的键 - 力扣(LeetCode)



这是一道关于字符串和数组操作的题,考察如何处理时间差并进行最大值比较。可以逐个计算每次按键的持续时间,并记录当前最长持续时间的键。
解题思路:
-
初始化最长持续时间为
releaseTimes[0],最长持续时间的按键为keysPressed[0]。 -
从第 1 个键开始遍历
releaseTimes和keysPressed:-
计算当前键的持续时间:
releaseTimes[i] - releaseTimes[i - 1] -
如果持续时间 > 当前最大持续时间,更新持续时间和按键
-
如果持续时间 == 当前最大持续时间,比较按键字母顺序,取字母较大的那个(
'c' > 'a')
-
Python 代码实现:
def slowestKey(releaseTimes, keysPressed):
max_duration = releaseTimes[0]
result_key = keysPressed[0]
for i in range(1, len(releaseTimes)):
duration = releaseTimes[i] - releaseTimes[i - 1]
if duration > max_duration or (duration == max_duration and keysPressed[i] > result_key):
max_duration = duration
result_key = keysPressed[i]
return result_key
示例:
releaseTimes = [9, 29, 49, 50]
keysPressed = "cbcd"
# 输出: "c"
因为 'c' 在第二次被按下时,持续了 20ms,是最长的一次按键。
655

被折叠的 条评论
为什么被折叠?



