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...