跳转至

LeetCode: 949. 给定数字能组成的最大时间

1、题目描述

给定一个由 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

2、解题思路

from itertools import permutations


class Solution:
    def largestTimeFromDigits(self, A: List[int]) -> str:

        time, res = 0, ""

        for ht, hb, mt, mb in permutations(A):
            hour = ht * 10 + hb
            minute = mt * 10 + mb
            cur_time = hour * 60 + minute
            if hour < 24 and minute < 60 and cur_time >= time:
                time, res = cur_time, "{}{}:{}{}".format(ht, hb, mt, mb)
        return res