LeetCode ----贪心算法

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

图片说明

思路:贪心+模拟

贪心 + 模拟
规则十分简单,对每一位进行分情况讨论即可:

第一位:如果需要被替换,优先替换为 2,当然前提是第二位不能超过 4。否则会出现 24:xx、25:xx 等;
第二位:如果需要被替换,根据第一位是什么,决定替换为 9 还是 3;
第三位:固定为 :;
第四位:如果需要被替换,替换为 5;
第五位:如果需要被替换,替换为 9。

class Solution {
    public String maximumTime(String time) {
        StringBuilder sb = new StringBuilder();
        sb.append(time.charAt(0) == '?' ? (time.charAt(1) == '?' || time.charAt(1) < '4') ? '2' : '1' : time.charAt(0));
        sb.append(time.charAt(1) == '?' ? sb.charAt(0) == '2' ? '3' : '9' : time.charAt(1));
        sb.append(':');
        sb.append(time.charAt(3) == '?' ? '5' : time.charAt(3));
        sb.append(time.charAt(4) == '?' ? '9' : time.charAt(4));
        return sb.toString();
    }
}
全部评论

相关推荐

牛客583549203号:腾讯还好,况且实习而已,实习生流动性很大,属于正常现象,记得和HR委婉解释
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务