在 Python 中查詢給定時間之後第一個迴文時間
假設我們有一個字串 s,它表示 24 小時格式的時間,格式為 HH:MM,其中 HH 的範圍是 0 到 23,MM 的範圍是 0 到 59。我們需要找到下一個最接近的迴文時間(作為字串讀取時)。如果沒有這樣的字串,則返回 -1。
所以,如果輸入是 "22:22",則輸出將是 "23:32"。
為了解決這個問題,我們將遵循以下步驟:
n := s 的大小
hour_string := s 從索引 0 到 2 的子字串
minute := s 從索引 3 到 5 的子字串,並將其轉換為整數
rev_hour := 反轉 hour_string 並將其轉換為數字
rev_hr_str := hour_string 的反轉
h := hour_string 作為整數
temp := 空字串,res := 空字串
如果 h 為 23 且 minute >= 32,則
res := -1
否則,當 minute < rev_hour 時,則
如果 h < 10,則
temp := "0"
temp := temp 連線 h
如果 rev_hour < 10,則
res := res 連線 temp 連線 ":0" 連線 rev_hr_str
否則,
res := res 連線 temp 連線 ":" 連線 rev_hr_str
否則,
h := h + 1
rev_hr_str := h 作為字串的反轉
rev_hour := h 的反轉
如果 h < 10,則
temp := "0"
temp := temp 連線 h
如果 rev_hour < 10,則
res := res 連線 temp 連線 ":0" 連線 rev_hr_str
否則,
res := res 連線 temp 連線 ":" 連線 rev_hr_str
返回 res
示例
讓我們看看下面的實現以獲得更好的理解:
def get_next_palindrome_time(s) : n = len(s) hour_string = s[0 : 2] minute = int(s[3 : 5]) rev_hour = int(hour_string[::-1]) rev_hr_str = hour_string[::-1] h = int(hour_string) temp = "" res = "" if (h == 23 and minute >= 32) : res = "-1" elif (minute < rev_hour) : if (h < 10) : temp = "0" temp = temp + str(h) if (rev_hour < 10) : res = res + temp + ":0" + rev_hr_str else : res = res + temp + ":" + rev_hr_str else : h += 1 rev_hr_str = str(h)[::-1] rev_hour = int(rev_hr_str) if (h < 10) : temp = "0" temp = temp + str(h) if (rev_hour < 10) : res = res + temp + ":0" + rev_hr_str else : res = res + temp + ":" + rev_hr_str return res s = "22:22" print(get_next_palindrome_time(s))
輸入
"22:22"
輸出
23:32
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP