当前位置 : 主页 > 编程语言 > java >

C++描述 5661. 替换隐藏数字得到的最晚时间

来源:互联网 收集:自由互联 发布时间:2022-10-26
C++描述 5661. 替换隐藏数字得到的最晚时间   大家好,我叫亓官劼(qí guān jié ) 给你一个字符串 ​​time​​​ ,格式为 ​​hh:mm​​​(小时:分钟),其中某几位数字被隐藏(


C++描述 5661. 替换隐藏数字得到的最晚时间

  大家好,我叫亓官劼(qí guān jié )


给你一个字符串 ​​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​​
  • 题目数据保证你可以由输入的字符串生成有效的时间

解题思路

贪心算法,固定的时间格式,共5位,分别判断,如果是​​?​​则取当前情况可以取得的最大值即可。

算法实现

class Solution {
public:
string maximumTime(string time) {
if(time[0] == '?'){
if((time[1] >= '0' && time[1] <= '3') || time[1] == '?')
time[0] = '2';
else
time[0] = '1';
}
if(time[1] == '?'){
if(time[0] == '0' || time[0] == '1')
time[1] = '9';
else
time[1] = '3';
}
if(time[3] == '?')
time[3] = '5';
if(time[4] == '?')
time[4] = '9';

return time;
}
};


上一篇:C++描述 674. 最长连续递增序列
下一篇:没有了
网友评论