leetcode 949 Largest Time for Given Digits

leetcode 949 Largest Time for Given Digits

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.解题思路

使用itertools库的排列方法,并判断出满足的组合作为键,其分钟数作为值,选取最大值的键输出即可。

3.Python代码

class Solution:
    def largestTimeFromDigits(self, A):
        """
        :type A: List[int]
        :rtype: str
        """
        valid={}
        for n1,n2,n3,n4 in itertools.permutations(A):
            hour,minute=n1*10+n2,n3*10+n4
            if 0<=hour<=23 and 0<=minute<=59:
                if 0<=hour<=9 and 0<=minute<=9:
                    valid["0"+str(hour)+":"+"0"+str(minute)]=hour*60+minute
                elif 0<=hour<=9:
                    valid["0"+str(hour)+":"+str(minute)]=hour*60+minute
                elif 0<=minute<=9:
                    valid[str(hour)+":"+"0"+str(minute)]=hour*60+minute
                else:
                    valid[str(hour)+":"+str(minute)]=hour*60+minute
        if valid=={}:
            return ""
        return max(valid,key=valid.get)

猜你喜欢

转载自blog.csdn.net/GQxxxxxl/article/details/84719798