给定一个由 4 位数字组成的数组,返回可以设置的符合 24 小时制的最大时间。
最小的 24 小时制时间是 00:00,而最大的是 23:59。从 00:00 (午夜)开始算起,过得越久,时间越大。
以长度为 5 的字符串返回答案。如果不能确定有效时间,则返回空字符串。
示例 1:
输入:[1,2,3,4]
输出:"23:41"
示例 2:
输入:[5,5,5,5]
输出:""
提示:
A.length == 4
0 <= A[i] <= 9
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/largest-time-for-given-digits
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution(object):
def largestTimeFromDigits(self, A):
"""
:type A: List[int]
:rtype: str
"""
var=""
for i in A:
var+=str(i)
res=list(map("".join,itertools.permutations(var)))
tmp=set()
for i in res:
try:
datetime.datetime.strptime(i,"%H%M")
tmp.add(i)
except ValueError:
pass
if not len(tmp):
return ""
max_h=0
max_m=0
flag=0
tmp=list(tmp)
for i in range(len(tmp)):
hour=int(tmp[i][:2])
minute=int(tmp[i][2:])
if hour>max_h:
max_h=hour
max_m=minute
flag=i
elif hour==max_h:
if minute>max_m:
max_m=minute
flag=i
return tmp[flag][:2]+":"+tmp[flag][2:]
执行结果:
通过
显示详情
执行用时 :72 ms, 在所有 Python 提交中击败了6.25%的用户
内存消耗 :12.9 MB, 在所有 Python 提交中击败了100.00%的用户
本文介绍了一个算法,该算法接收一个包含四个数字的数组,并返回符合24小时制的最大可能时间。文章详细解释了如何通过遍历所有可能的排列组合,筛选出合法的24小时制时间,最终找到并返回最大的时间格式。
1356

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



