给你一个字符串 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
- 题目数据保证你可以由输入的字符串生成有效的时间
C++
class Solution {
public:
string maximumTime(string time) {
string res="00:00";
for(int i=0;i<24*60;i++) {
int h=i/60;
int m=i%60;
string a=to_string(h);
string b=to_string(m);
if(a.size()==1) {
a="0"+a;
}
if(b.size()==1) {
b="0"+b;
}
string tmp=a+":"+b;
int flag=0;
for(int k=0;k<5;k++) {
if(time[k]!='?' && time[k]!=tmp[k]) {
flag=1;
break;
}
}
if(flag==0) {
res=max(res,tmp);
}
}
return res;
}
};