[leetcode/lintcode 题解] 算法面试高频题详解:最大时刻-阿里云开发者社区

开发者社区> 算法编程> 正文
登录阅读全文

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

简介: [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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
算法编程
使用钉钉扫一扫加入圈子
+ 订阅

开发者社区在线编程频道官方技术圈。包含算法资源更新,周赛动态,每日一题互动。

官方博客
链接