Skip to content

Latest commit

 

History

History
75 lines (55 loc) · 2.13 KB

File metadata and controls

75 lines (55 loc) · 2.13 KB

题目

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.

题目大意

给你一个字符串 time ,格式为 hh:mm(小时:分钟),其中某几位数字被隐藏(用 ? 表示)。有效的时间为 00:00 到 23:59 之间的所有时间,包括 00:00 和 23:59 。替换 time 中隐藏的数字,返回你可以得到的最晚有效时间。

解题思路

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

代码

package leetcode funcmaximumTime(timestring) string { timeb:= []byte(time) iftimeb[3] =='?' { timeb[3] ='5' } iftimeb[4] =='?' { timeb[4] ='9' } iftimeb[0] =='?' { ifint(timeb[1]-'0') >3&&int(timeb[1]-'0') <10 { timeb[0] ='1' } else { timeb[0] ='2' } } iftimeb[1] =='?' { timeb[1] ='9' } iftimeb[0] =='2'&&timeb[1] =='9' { timeb[1] ='3' } returnstring(timeb) }
close