题目

给你一个字符串 time ,格式为 hh:mm(小时:分钟),其中某几位数字被隐藏(用 ? 表示)。有效的时间为 00:00 到 23:59 之间的所有时间,包括 00:00 和 23:59 。替换 time 中隐藏的数字,返回你可以得到的最晚有效时间。示例 1:输入:time = "2?:?0"
输出:"23:50"
解释:以数字 '2' 开头的最晚一小时是 23 ,以 '0' 结尾的最晚一分钟是 50 。
示例 2:输入:time = "0?:3?"
输出:"09:39"
示例 3:输入:time = "1?:22"
输出:"19:22"提示:time 的格式为 hh:mm
题目数据保证你可以由输入的字符串生成有效的时间

解题思路与算法

  • 字符串“00:00” 的4个0分别看做x1,x2,x3,x4
  • 如果x3未知,x3最大为5;如果x4未知,x4最大为9
  • x1,x2有三种情况:
    • x1,x2未知: x1最大为2,x2最大为3
    • x1未知: 如果x2大于3,那x1最大为1。因为没有24,25,,,,这样的小时,最大为23,最大具体时间为23:59;如果x2小于等于3,那么x1最大为2
    • x2未知: 如果x1为2,x2最大只能为3;如果x1小于2,那么x2最大可以为9

代码

class Solution {public String maximumTime(String time) {char[] ch = time.toCharArray();String x1=String.valueOf(ch[0]);String x2=String.valueOf(ch[1]);String x3=String.valueOf(ch[3]);String x4=String.valueOf(ch[4]);if(x1.equals("?") && x2.equals("?") ) {ch[0]='2';ch[1]='3';}else if (x1.equals("?")) {if((int)ch[1]-(int)('0')>3) {ch[0]='1';}else {ch[0]='2';}}else if (x2.equals("?")) {if((int)ch[0]-(int)('0')==2) {ch[1]='3';}else {ch[1]='9';}}if(x3.equals("?")) {ch[3]='5';}if(x4.equals("?")) {ch[4]='9';}return String.valueOf(ch);}}

LeetCode 5661. 替换隐藏数字得到的最晚时间 做题小结相关推荐

  1. LeetCode——1736. 替换隐藏数字得到的最晚时间(Latest Time by Replacing Hidden Digits)——分析及代码(Java)

    LeetCode--1736. 替换隐藏数字得到的最晚时间[Latest Time by Replacing Hidden Digits]--分析及代码[Java] 一.题目 二.分析及代码 1. 逐 ...

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

    文章目录 1. 题目 2. 解题 1. 题目 给你一个字符串 time ,格式为 hh:mm(小时:分钟),其中某几位数字被隐藏(用 ? 表示). 有效的时间为 00:00 到 23:59 之间的所有 ...

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

    给你一个字符串 time ,格式为 hh:mm(小时:分钟),其中某几位数字被隐藏(用 ? 表示). 有效的时间为 00:00 到 23:59 之间的所有时间,包括 00:00 和 23:59 . 替 ...

  4. LeetCode 435. 无重叠区间 做题小结

    题目 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠.注意:可以认为区间的终点总是大于它的起点. 区间 [1,2] 和 [2,3] 的边界相互"接触",但没有相 ...

  5. LeetCode 860. 柠檬水找零 做题小结

    题目 在柠檬水摊上,每一杯柠檬水的售价为 5 美元.顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯.每位顾客只买一杯柠檬水,然后向你付 5 美元.10 美元或 20 美元.你必须 ...

  6. LeetCode 1049. 最后一块石头的重量 II 做题小结

    题目 有一堆石头,每块石头的重量都是正整数.每一回合,从中选出任意两块石头,然后将它们一起粉碎.假设石头的重量分别为 x 和 y,且 x <= y.那么粉碎的可能结果如下:如果 x == y,那 ...

  7. LeetCode 1844. 将所有数字用字符替换

    文章目录 1. 题目 2. 解题 1. 题目 给你一个下标从 0 开始的字符串 s ,它的 偶数 下标处为小写英文字母,奇数 下标处为数字. 定义一个函数 shift(c, x) ,其中 c 是一个字 ...

  8. php隐藏中间四位数字,php怎么实现隐藏数字中间四位

    php实现隐藏数字中间四位的方法:可以利用substr_replace()函数来实现.substr_replace()函数可以把字符串的一部分替换为另一个字符串,并返回被替换的字符串. substr_ ...

  9. leetcode 1567 替换所有问号

    leetcode 1567 替换所有问号 好久没写了 刷题 好久没写了 比较忙 比较懒 好久没上过了 看到有好久之前的提问啥的真是抱歉了. 刷题 最近重新看了下力扣 好不容易写了一个100% 贴出来纪 ...

最新文章

  1. java十个整数相反顺序_编写程序,对输入的一个整数,按相反顺序输出该数。例如,输入为 3578, 输出为 8753。...
  2. SQLite 日期 时间
  3. 使用Lombok简化开发及无效解决方案
  4. [蓝桥杯][算法训练VIP]乘积最大(动态规划)
  5. Css学习总结(4)——CSS选择器总结
  6. ADB server didn't ACK问题
  7. 19【推荐系统11】FM与深度学习模型的结合
  8. Asio Threads and Asio
  9. CS,四,组网及因特网
  10. AARRR模型(模型数据指标详解)
  11. Python标准库collections库:超好用的counter计数器,不接受反驳!
  12. vue-cropper图片裁剪 PC
  13. HTML5,CSS,JS前端常见知识面试题
  14. 《有效成交量分析法》(威廉•帕斯卡尔)一、有效成交量概念的提出
  15. 万年历源码 (zt)
  16. python小白之路:第一章 初识python
  17. IPMSM永磁电机弱磁控制 附有说明文档 公式法MTPA
  18. windows server enterprise 2008 激活办法
  19. Ufs测试硬盘的软件,Ufs格式的硬盘在WINDOWS下的读取程序
  20. 【对讲机的那点事】手把手教你安装 MOTOTRBO 驱动程序

热门文章

  1. JAVA泛型及常用内库
  2. 张利华:夺命的中国IT互联网行业
  3. P4994 终于结束的起点
  4. □ 影片名:《劲爆颁奖礼李宇春PK掉刘德华》(4395)
  5. C# Queue与RabbitMQ的爱恨情仇(文末附源码):Q与MQ消息队列简单应用(一)
  6. 飞鸽沟通软件2013最新版下载
  7. spring 切面通知执行过程
  8. layui 动态表格 实现无感刷新
  9. 循序渐进之(五)空间域图像增强之自适应直方图均衡化(AHE)
  10. 使用orange3-associate做分类关联规则