Cho chuỗi thời gian định dạng 12h (có am/pm) và số phút n. Cộng n phút và trả về thời gian mới cùng định dạng.
Ví dụ: "8:20pm", n=150 → "10:50pm".
Các bước giải quyết
- Tách giờ
h, phútmtừ chuỗi h %= 12, nếu 'pm' thìh += 12t = h*60 + m + n(tổng phút)h, m = divmod(t, 60),h %= 24- Xác định hậu tố 'am'/'pm', chuyển
hvề 12h (h %= 12, nếu 0 thì 12) - Trả về chuỗi định dạng
HH:MM{am/pm}
Ví dụ mã 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))
Đầu vào
"8:20pm", 150
Đầu ra
10:50pm