前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >算法创作|得到的最晚有效时间问题解决方法

算法创作|得到的最晚有效时间问题解决方法

作者头像
算法与编程之美
发布2021-03-30 15:04:58
3010
发布2021-03-30 15:04:58
举报

问题描述

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

输入:time = 2?:?0”

输出:”23:50

解决方案

按照顺序逐位判断

对于小时的第一位如果为?,则有两种不同的情况:

小时的第二位在几种情况中 ('0','1','2','3',) ,则小时第一位取2

小时的第二位不在几种情况中,则小时的第一位只能取 1

对于小时的第二位如果为 ? 也有两不同的情况:

小时的第一位在此情况中('0','1'),则小时的第二位取9为最晚时间

若小时的第一位为2,则此时小时的第二位取3为最晚时间

对于分钟的二位如果为??,则第一位取5第二位取9

代码清单 1替换 time 中隐藏的数字,返回你可以得到的最晚有效时间。

代码语言:javascript
复制
class  Solution:                   

     def maximumTime(self, time: str) -> str:

         time = list(time)

         if time[0] == '?':

            time[0] = '2' if time[1] in  ('0','1','2','3','?') else '1'

         if time[1] == '?':

            time[1] = '9' if time[0] in  ('0','1') else '3'

         if time[3] == '?': time[3] = '5'

         if time[4] == '?': time[4] = '9'

         return "".join(time)

结语

通过讨论有几种情况来完成这道题,因为此题可能出现的种类不多,便可以只用这种方法,若出现情况较多的题目,这种方法便不可行,需要一种更简便更直接的方法解决此类题。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档