算法创作|得到的最晚有效时间问题解决方法
问题描述你一个字符串 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 中隐藏的数字,返回你可以得到的最晚有效时间。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)结语通过讨论有几种情况来完成这道题,因为此题可能出现的种类不多,便可以只用这种方法,若出现情况较多的题目,这种方法便不可行,需要一种更简便更直接的方法解决此类题。实习编辑:王晓姣作者:查萌雨、赵柔、岳进