Giả sử chúng ta có một chuỗi biểu thị thời gian đồng hồ 12 giờ với hậu tố sáng hoặc chiều và một số nguyên n cũng được cho trước, chúng ta sẽ thêm n phút vào thời gian và trả về thời gian mới ở định dạng tương tự.
Vì vậy, nếu đầu vào là s ="8:20 tối" và n =150, thì đầu ra sẽ là 10:50 tối
Để giải quyết vấn đề này, chúng ta sẽ làm theo các bước sau -
-
h, m:=lấy phần giờ và phút từ s
-
h:=h mod 12
-
nếu thời gian là 'chiều', thì
-
h:=h + 12
-
-
t:=h * 60 + m + n
-
h:=thương số của t / 60, m:=phần còn lại của t / 60
-
h:=h mod 24
-
hậu tố:='am' nếu h <12 nếu không là 'pm'
-
h:=h mod 12
-
nếu h giống 0 thì
-
h:=12
-
-
trả về hậu tố time h:m
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
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