สมมติว่าเรามีสตริงที่แสดงเวลานาฬิกาแบบ 12 ชั่วโมงที่มีส่วนต่อท้าย am หรือ pm และมีการใส่จำนวนเต็ม n ด้วย เราจะเพิ่มเวลา n นาทีและส่งกลับเวลาใหม่ในรูปแบบเดียวกัน
ดังนั้น หากอินพุตเป็น s ="20:20pm" และ n =150 เอาต์พุตจะเป็น 22:50pm
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
h, m :=นำส่วนชั่วโมงและนาทีจาก s
-
ชั่วโมง :=ชั่วโมง mod 12
-
ถ้าเวลาเป็น 'pm' แล้ว
-
ชั่วโมง :=ชั่วโมง + 12
-
-
t :=h * 60 + m + n
-
ชั่วโมง :=ผลหารของ t/60, m :=ส่วนที่เหลือของ t/60
-
ชั่วโมง :=ชั่วโมง mod 24
-
คำต่อท้าย :='am' ถ้า h <12 มิฉะนั้น 'pm'
-
ชั่วโมง :=ชั่วโมง mod 12
-
ถ้า h เท่ากับ 0 แล้ว
-
ชั่วโมง :=12
-
-
ย้อนเวลา h:m ต่อท้าย
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
class Solution: def solve(self, s, n): h, m = map(int, s[:-2].split(':')) h %= 12 if s[-2:] == 'pm': h += 12 t = h * 60 + m + n h, m = divmod(t, 60) h %= 24 suffix = 'a' if h < 12 else 'p' h %= 12 if h == 0: h = 12 return "{:02d}:{:02d}{}m".format(h, m, suffix) ob = Solution() print(ob.solve("8:20pm", 150))
อินพุต
"8:20pm", 150
ผลลัพธ์
10:50pm