一、题目描述
1.题目内容
给你一个字符串 time ,格式为 hh:mm(小时:分钟),其中某几位数字被隐藏(用 ? 表示)。
有效的时间为 00:00 到 23:59 之间的所有时间,包括 00:00 和 23:59 。
替换 time 中隐藏的数字,返回你可以得到的最晚有效时间。
2.题目示例
示例1
输入 :time = “2?:?0”
输出:“23:50”
解释:以数字 ‘2’ 开头的最晚一小时是 23 ,以 ‘0’ 结尾的最晚一分钟是 50 。
示例2
输入:time = “0?:3?”
输出:“09:39”
示例3
输入:time = “1?:22”
输出:“19:22”
3.提示
time 的格式为 hh:mm
题目数据保证你可以由输入的字符串生成有效的时间
二、思路
直接遍历即可。
三、数据结构资料
本题无需要的数据结构。
四、代码
class Solution
{
public String maximumTime(String time)
{
char[] t = time.toCharArray();
if(t[0] == '?')
{
if(t[1] == '?')
{
t[0] = '2';
t[1] = '3';
}
else if(t[1] < '4')
{
t[0] = '2';
}
else
{
t[0] = '1';
}
}
if(t[1] == '?')
{
if(t[0] < '2')
{
t[1] = '9';
}
else
{
t[1] = '3';
}
}
if(t[3] == '?')
{
t[3] = '5';
}
if(t[4] == '?')
{
t[4] = '9';
}
return String.valueOf(t);
}
}
五、复杂度分析
时间复杂度O(1)
空间复杂度O(1)
执行用时 | 时间击败比例 | 内存消耗 | 内存击败比例 |
---|---|---|---|
0ms | 100% | 36.6MB | 51% |