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 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告