สมมติว่าเรามีสตริงที่แสดงเวลานาฬิกาแบบ 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