Python程序:替换隐藏数字找到最新的有效时间
假设我们有一个字符串 s,表示 hh:mm 格式的时间。s 中的一些数字是隐藏的(用 ? 表示)。考虑到 24 小时制,有效时间在 00:00 到 23:59 之间。我们必须找到通过替换隐藏数字可以得到的最新有效时间。
所以,如果输入类似 s= "1?:?5",则输出将是 13:55,因为以数字 '2' 开头的最新小时是 23,以数字 '0' 结尾的最新分钟是 50。
为了解决这个问题,我们将遵循以下步骤:
ans := 一个新的列表
max_time := ['2','3',':','5','9']
如果 max_time[0] < '2',则
max_time[1] := '9'
如果 '9' >= max_time[1] > '3',则
max_time[0] := '1'
对于来自 (max_time, s) 的每一对 (mx, digit),执行以下操作:
如果 digit 是一个单一数字,则
将 digit 插入 ans 的末尾
否则,
将 mx 插入 ans 的末尾
连接 ans 中存在的字符并返回
示例(Python)
让我们看看以下实现,以便更好地理解:
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
广告