Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm thời gian hợp lệ mới nhất bằng cách thay thế các chữ số ẩn trong Python

Giả sử chúng ta có một chuỗi s biểu diễn thời gian dưới dạng hh:mm. Một số chữ số trong s bị ẩn (biểu diễn bằng?). Xem xét đồng hồ 24 giờ, thời gian hợp lệ là từ 00:00 đến 23:59. Chúng tôi phải tìm thời gian hợp lệ mới nhất mà chúng tôi có thể nhận được theo thời gian bằng cách thay thế các chữ số bị ẩn.

Vì vậy, nếu đầu vào là s =​​"1?:? 5", thì đầu ra sẽ là 13:55 vì giờ gần nhất bắt đầu bằng chữ số '2' là 23 và phút cuối cùng kết thúc bằng chữ số '0' là 50.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • ans:=một danh sách mới

  • max_time:=['2', '3', ':', '5', '9']

  • nếu max_time [0] <'2' thì

    • max_time [1]:='9'

  • nếu '9'> =max_time [1]> '3' thì

    • max_time [0]:='1'

  • cho mỗi cặp (mx, chữ số) từ (max_time, s), thực hiện

    • nếu chữ số là một chữ số, thì

      • chèn chữ số vào cuối ans

    • nếu không,

      • chèn mx vào cuối ans

  • nối các ký tự có trong ans và trả về

Ví dụ (Python)

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

def solve(s):
   ans = []
   max_time = ['2','3',':','5','9']
   if max_time[0] < '2':
      max_time[1] = '9'
   if '9' >= max_time[1] > '3':
      max_time[0] = '1'
   for mx,digit in zip(max_time,s):
      if digit.isdigit():
         ans.append(digit)
      else:
         ans.append(mx)
   return ''.join(ans)

s= "1?:?5"
print(solve(s))

Đầu vào

"1?:?5"

Đầu ra

13:55