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

更新于: 2021年5月18日

207 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告