ภาพรวม
โจทย์บวก n นาทีให้เวลาในรูปแบบ 12 ชั่วโมง (มี am/pm) คืนเวลาใหม่ในรูปแบบเดิม
ตัวอย่าง
อินพุต: "8:20pm", n = 150 นาที
8:20pm = 20:20 (24h)
+150 นาที = 20:20 + 2:30 = 22:50
22:50 = 10:50pm → "10:50pm"
โค้ด Python
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))
ขั้นตอน
- แยกชั่วโมง นาที จากสตริง (ตัด am/pm ทิ้ง)
- แปลงเป็น 24h: pm → +12, 12am → 0, 12pm → 12
- แปลงเป็นนาทีรวม + n
- divmod กลับเป็น ชั่วโมง, นาที
- mod 24 จัดการข้ามวัน
- แปลงกลับ 12h + am/pm
ผลลัพธ์
10:50pm