1736 替換隱藏數字得到的最晚時間(模擬)

2021-10-25 15:22:31 字數 1382 閱讀 6381

1. 問題描述:

給你乙個字串 time ,格式為 hh:mm(小時:分鐘),其中某幾位數字被隱藏(用 ? 表示)。有效的時間為 00:00 到 23:59 之間的所有時間,包括 00:00 和 23:59 。替換 time 中隱藏的數字,返回你可以得到的最晚有效時間

示例 1:

輸入:time = "2?:?0"

輸出:"23:50"

解釋:以數字 '2' 開頭的最晚一小時是 23 ,以 '0' 結尾的最晚一分鐘是 50 。

示例 2:

輸入:time = "0?:3?"

輸出:"09:39"

示例 3:

輸入:time = "1?:22"

輸出:"19:22"

2. 思路分析:

我們先可以將字串轉換為列表這樣才可以對列表中的元素進行修改,由題目可以知道替換的是"?",主要是第乙個字元與第二個字元的替換,第乙個字元與第二個字元都是問號的情況下將其替換為"23",第乙個字元如果是問號的情況下可以由兩種替換,分別將問號替換為字元1或者是字元2,替換為1或者是2是根據第二個字元的情況下進行替換的,第四個字元與第五個字元為問號的情況下的替換是比較簡單的,分別替換為字元5和字元9,最後將字符號列表轉換為字串即可,主要是判斷各種情況模擬其中的過程即可

3. **如下:

class solution:

def maximumtime(self, time: str) -> str:

res = list(time)

if res[0] == "?" and res[1] == "?":

res[0] = "2"

res[1] = "3"

if res[0] == "?" and res[1] != "?" and int(res[1]) <= 3:

res[0] = "2"

elif res[0] == "?" and res[1] != "?" and int(res[1]) > 3:

res[0] = "1"

if res[1] == "?" and (res[0] == "0" or res[0] == "1"):

res[1] = "9"

elif res[1] == "?" and res[0] == "2":

res[1] = "3"

if res[3] == "?":

res[3] = "5"

if res[4] == "?":

res[4] = "9"

return "".join(res)

1736 替換隱藏數字得到的最晚時間

題目描述 給你乙個字串 time 格式為 hh mm 小時 分鐘 其中某幾位數字被隱藏 用 表示 有效的時間為 00 00 到 23 59 之間的所有時間,包括 00 00 和 23 59 替換 time 中隱藏的數字,返回你可以得到的最晚有效時間。示例 1 輸入 time 2?0 輸出 23 50...

力扣 5661 替換隱藏數字得到的最晚時間

題意理解 給你乙個字串 time 格式為 hh mm 小時 分鐘 其中某幾位數字被隱藏 用 表示 有效的時間為 00 00 到 23 59 之間的所有時間,包括 00 00 和 23 59 替換 time 中隱藏的數字,返回你可以得到的最晚有效時間。問題分析 難點在於怎麼考慮全所有的時間數字組合。其...

得到重複的數字

得到重複的數字 題目描述 在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是重複的數字2或者3。include using namespa...