LeetCode题库1736求解隐藏最晚时间

Posted KookNut39

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode题库1736求解隐藏最晚时间相关的知识,希望对你有一定的参考价值。

题目:给你一个字符串 time ,格式为 hh:mm(小时:分钟),其中某几位数字被隐藏(用 ? 表示)。
有效的时间为 00:00 到 23:59 之间的所有时间,包括 00:00 和 23:59 。
替换 time 中隐藏的数字,返回你可以得到的最晚有效时间。
这个题我做的效率感觉不是很高,因为有for循环,感觉有点拉了,看别人其他人的解答,是直接就用if语句就解决了,那个效率就非常的可观了,这道题就是在此做个记录

class Solution {
public:
    string maximumTime(string time) 
    {
        //第0个字符取值范围0-2
        //第1个字符取值范围0-9 并且当第一个字符是2时,取值变为0-3
        //第3个字符取值范围0-5
        //第4个字符取值范围0-9
       for(int i = 0;i<5;i++)
       {
            switch(time[i])
            {
            case '?':
                if(i == 0 && (time[i+1] == '?' || time[i+1] < '4'))
                {
                    time[i] = '2';
                    break;
                }
                else if(i == 0)
                {
                    time[i] = '1';
                    break;
                }
                else if(i == 1 && time[i-1] != '2')
                {
                    time[i] = '9';
                    break;
                }
                else if(i == 1 && time[i-1] == '2')
                {
                    time[i] = '3';
                    break;
                }
                else if(i == 3)
                {
                    time[i] = '5';
                    break;
                }
                else if(i == 4)
                {
                    time[i] = '9';
                    break;
                }
            default:
                break;
            }
       }
        return time;
        
    }
};

以上是关于LeetCode题库1736求解隐藏最晚时间的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode] 1736. 替换隐藏数字得到的最晚时间

LeetCode 1736 替换隐藏数字得到的最晚时间[判断] HERODING的LeetCode之路

LeetCode1736. 替换隐藏数字得到的最晚时间/1743. 从相邻元素对还原数组/671. 二叉树中第二小的节点

1736. 替换隐藏数字得到的最晚时间

1736. 替换隐藏数字得到的最晚时间

[E模拟] lc1736. 替换隐藏数字得到的最晚时间(模拟+时间问题+sprintf函数+周赛225_1)