949. 给定数字能组成的最大时间(Python)

更多精彩内容,请关注【力扣简单题】

题目

难度:★☆☆☆☆
类型:排列组合

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

如有疑问或建议,欢迎评论区留言~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,849评论 6 13
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,452评论 0 4
  •   引用类型的值(对象)是引用类型的一个实例。   在 ECMAscript 中,引用类型是一种数据结构,用于将数...
    霜天晓阅读 4,776评论 0 1
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,120评论 0 10
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 9,942评论 0 5