[leetcode/lintcode 题解] 算法面试高频题详解:最大时刻

描述
给一个24小时制的时间(00:00-23:59),其中有一个或多个数字是问号。问号处可以用任何一个数字代替,问可以表示的最大时间是多少。

在线评测地址:领扣题库官网

样例1
输入: 
time = "2?:00"
输出: 
"23:00"
样例2
输入: 
time = "??:??"
输出: 
"23:59"

解题思路
直接对于问号处的数字变成最大,要判断是否满足时间的标准。
复杂度分析
时间复杂度:O(1)
空间复杂度:O(1)
源代码

public class Solution {
    /**
     * @param time: a string of Time
     * @return: The MaximumMoment
     */
    public String MaximumMoment(String time) {
        
        char[] timeChars = time.toCharArray();
        if (timeChars[0] == '?') {
            if (timeChars[1] <= '9' && timeChars[1] >= '4')
                timeChars[0] = '1';
            else
                timeChars[0]='2';
        }
            
        if (timeChars[1] == '?') {
            if (timeChars[0] != '2')
                timeChars[1] = '9';
            else
                timeChars[1] = '3';
        }
        if (timeChars[3] == '?')
            timeChars[3] = '5';
        if (timeChars[4] == '?')
            timeChars[4] = '9';
            
        return String.valueOf(timeChars);
    }
}

更多题解参考:九章官网solution

上一篇:[leetcode/lintcode 题解] 阿里算法面试真题:高效作业处理服务


下一篇:[leetcode/lintcode 题解] 算法面试真题详解:另一个树的子树