更多精彩内容,请关注【力扣简单题】。
题目
难度:★☆☆☆☆
类型:排列组合
给定一个由 4 位数字组成的数组,返回可以设置的符合 24 小时制的最大时间。
最小的 24 小时制时间是 00:00,而最大的是 23:59。从 00:00 (午夜)开始算起,过得越久,时间越大。
以长度为 5 的字符串返回答案。如果不能确定有效时间,则返回空字符串。
提示
A.length == 4
0 <= A[i] <= 9
示例
示例 1
输入:[1,2,3,4]
输出:"23:41"
示例 2
输入:[5,5,5,5]
输出:""
解答
四个数按照先后顺序排列,一共就有4×3×2×1=24种可能的全排列,计算各个组合对应的时刻,取满足条件的最大值即可。
from itertools import permutations
class Solution:
def largestTimeFromDigits(self, A):
"""
:param A: List[int]
:return: str
"""
max_time = 0 # 初始化最大时刻
res = '' # 结果字符串
for ht, hb, mt, mb in permutations(A): # 遍历
hour, minute = ht * 10 + hb, mt * 10 + mb # 求取时分
t = hour * 60 + minute # 当前时刻(秒)
if hour < 24 and minute < 60 and t >= max_time: # 时间合法
res = "{}{}:{}{}".format(ht, hb, mt, mb) # 更新结果
max_time = t # 更新最大时刻
return res
如有疑问或建议,欢迎评论区留言~