1736. Latest Time by Replacing Hidden Digits

# 1736. Latest Time by Replacing Hidden Digits#

## 题目 #

You are given a string `time` in the form of `hh:mm`, where some of the digits in the string are hidden (represented by `?`).

The valid times are those inclusively between `00:00` and `23:59`.

Return the latest valid time you can get from `time` by replacing the hidden digits.

Example 1:

``````Input: time = "2?:?0"
Output: "23:50"
Explanation: The latest hour beginning with the digit '2' is 23 and the latest minute ending with the digit '0' is 50.
``````

Example 2:

``````Input: time = "0?:3?"
Output: "09:39"
``````

Example 3:

``````Input: time = "1?:22"
Output: "19:22"
``````

Constraints:

• `time` is in the format `hh:mm`.
• It is guaranteed that you can produce a valid time from the given string.

## 解题思路 #

• 简单题。根据题意，需要找到最晚的有效时间。枚举时间 4 个位置即可。如果第 3 个位置是 ？，那么它最晚时间是 5；如果第 4 个位置是 ？，那么它最晚时间是 9；如果第 2 个位置是 ？，那么它最晚时间是 9；如果第 1 个位置是 ？，根据第 2 个位置判断，如果第 2 个位置是大于 3 的数，那么第一个位置最晚时间是 1，如果第 2 个位置是小于 3 的数那么第一个位置最晚时间是 2 。按照上述规则即可还原最晚时间。

## 代码 #

``````package leetcode

func maximumTime(time string) string {
timeb := []byte(time)
if timeb[3] == '?' {
timeb[3] = '5'
}
if timeb[4] == '?' {
timeb[4] = '9'
}
if timeb[0] == '?' {
if int(timeb[1]-'0') > 3 && int(timeb[1]-'0') < 10 {
timeb[0] = '1'
} else {
timeb[0] = '2'
}
}
if timeb[1] == '?' {
timeb[1] = '9'
}
if timeb[0] == '2' && timeb[1] == '9' {
timeb[1] = '3'
}
return string(timeb)
}
``````

Apr 8, 2023