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