日期:2026年3月31日
ZeroJudge 題目連結:d048. 11309 - Counting Chaos
解題想法
寫一個自訂函式 check,檢查輸入的時間 h:m 是否為迴文。再寫另一個自訂函式 solve,輸入讀取的到字串 s,用 : 分割為 h:m,再換算成分鐘,由於答案範圍很小,用線性搜尋從目前的時間 curr 開始找答案即可。
Python 程式碼
使用時間約為 33 ms,記憶體約為 2.9 MB,通過測試。
def check(h, m): # 檢查 h:m 是否為迴文
time = f"{h:02d}{m:02d}" # 補 0 組成字串
time = time.lstrip('0') # 刪除前置 0
return time == time[::-1] # 是否為迴文
def solve(s): # 輸入字串求解
h, m = map(int, s.split(':')) # 用 : 分割字串轉成整數
curr = h*60 + m # 現在的時刻,以分鐘為單位
for _ in range(1, 1440): # 線性搜尋找答案
curr += 1 # 時間加 1 分鐘
curr_h = curr//60%24 # 時
curr_m = curr%60 # 分
if check(curr_h, curr_m): # 如果是迴文,回傳答案
return f"{curr_h:02d}:{curr_m:02d}"
return "00:00" # 預設的回傳值,理論上用不到
n = int(input())
for _ in range(n):
print(solve(input()))