又一道简单等级的题,小白打小怪~
最大时间:给定一个由 4 位数字组成的数组,返回可以设置的符合 24 小时制的最大时间。最小的 24 小时制时间是 00:00,而最大的是 23:59。从 00:00 (午夜)开始算起,过得越久,时间越大。以长度为 5 的字符串返回答案。如果不能确定有效时间,则返回空字符串。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/largest-time-for-given-digits侵删
思路一:
可能很多同学拿到题的第一时间是想直接判断最小值应该小于3,次小值应该小于6等,按照条件去筛选,这样就会分很多if else,一定程度上增加了做题的时间
思路二:
对于本题,由于只有四位,可以直接遍历所有排列,也不会有太多排列,此时暴力反而会节省思考的时间
class Solution(object):def largestTimeFromDigits(self, A):""":type A: List[int]:rtype: str"""max_time=-1for h1,h2,m1,m2 in itertools.permutations(A):hour=h1*10+h2mins=m1*10+m2time=hour*60+minsif hour>23 or mins>59:continueelif max_time<time:max_time=timereturn "{:02d}:{:02d}".format(*divmod(max_time, 60)) if max_time>-1 else ""
知识点:
-
itertools.permutations
-
"{:02d}:{:02d}".format format的用法非常多可以直接转换进制等,有兴趣的同学可以查查,比如网上查以下几个小?
tplt = "{0:^10}\t{1:{3}^10}\t{2:^10}" # {1:{3}^10} 1表示位置,{3}表示用第3个参数来填充,^表示居中,10表示占10个位置'{:,}'.format(1234567890)=》 '1,234,567,890'^、<、>分别是居中、左对齐、右对齐,后面带宽度:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
本文介绍了一道关于从四位数字构建最大24小时制时间的编程题,通过遍历所有可能的组合来找到符合条件的最大时间,并使用Python实现了解决方案。
1205

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



