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();
    }
}
全部评论

相关推荐

头像
不愿透露姓名的神秘牛友
05-27 11:41
已编辑
点赞 评论 收藏
转发
头像
不愿透露姓名的神秘牛友
04-29 12:10
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务