假设我们有一个字符串 s 以 hh:mm 的形式表示时间。s 中的一些数字是隐藏的(用 ? 表示)。考虑到 24 小时制,有效时间在 00:00 到 23:59 之间。我们必须通过替换隐藏数字来找到我们可以从时间中获得的最新有效时间。
因此,如果输入类似于 s="1?:?5",则输出将是 13:55,因为以数字 '2' 开头的最新一小时是 23,而以数字 '0' 结尾的最新一分钟是50.
让我们看看以下实现以获得更好的理解 -
def solve(s): ans = [] max_time = ['2','3',':','5','9'] if max_time[0] < '2': max_time[1] = '9' if '9' >= max_time[1] > '3': max_time[0] = '1' for mx,digit in zip(max_time,s): if digit.isdigit(): ans.append(digit) else: ans.append(mx) return ''.join(ans) s= "1?:?5" print(solve(s))
"1?:?5"输出结果
13:55