LeetCode 1736 - 替换隐藏数字得到的最晚时间
AlightYoung 7/10/2021 LeetCode
简单
原题链接:https://leetcode-cn.com/problems/latest-time-by-replacing-hidden-digits (opens new window)
# 题目描述
给你一个字符串 time ,格式为 hh:mm(小时:分钟),其中某几位数字被隐藏(用 ? 表示)。
有效的时间为 00:00 到 23:59 之间的所有时间,包括 00:00 和 23:59 。
替换 time 中隐藏的数字,返回你可以得到的最晚有效时间。
示例 1
输入:time = "2?:?0"
输出:"23:50"
解释:以数字 '2' 开头的最晚一小时是 23 ,以 '0' 结尾的最晚一分钟是 50 。
示例 2
输入:time = "0?:3?"
输出:"09:39"
示例 3
输入:time = "1?:22"
输出:"19:22"
提示
time 的格式为 hh:mm
题目数据保证你可以由输入的字符串生成有效的时间
# Python题解
# 个人题解
经典暴力解
class Solution(object):
def maximumTime(self, time):
"""
:type time: str
:rtype: str
"""
h1, h2, m1, m2 = time[0], time[1], time[3], time[4]
if h1 == '?' and h2 == '?':
h1, h2 = '2', '3'
elif h1 == '?':
if int(h2) >= 4:
h1 = '1'
else:
h1 = '2'
elif h2 == '?':
if int(h1) < 2:
h2 = '9'
else:
h2 = '3'
if m1 == '?': m1 = '5'
if m2 == '?': m2 = '9'
return h1 + h2 + ':' + m1 + m2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 总结
看了题解的一些其他解法,写法挺很多,逻辑的可变换性很大。