Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

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


Khi cần tìm thời gian hợp lệ lớn nhất có thể thu được bằng cách thay thế các chữ số ẩn (ký tự '?'), ta định nghĩa phương thức kiểm tra vị trí các ký tự '?' và chuyển đổi chúng thành giá trị phù hợp dựa trên vị trí (giờ, phút).

Ví dụ

Minh họa:

def find_latest_time(my_time):
    my_time = list(my_time)
    for i in range(len(my_time)):
        if my_time[i] == "?":
            if i == 0:
                my_time[i] = "2" if my_time[i+1] in "?0123" else "1"
            elif i == 1:
                my_time[i] = "3" if my_time[0] == "2" else "9"
            elif i == 3:
                my_time[i] = "5"
            else:
                my_time[i] = "9"
    print("".join(my_time))

my_str = '0?:?3'
print("Thời gian ban đầu:")
print(my_str)
print("Thời gian hợp lệ lớn nhất:")
find_latest_time(my_str)

Kết quả

Thời gian ban đầu: 0?:?3
Thời gian hợp lệ lớn nhất: 09:53

Giải thích

  • Định nghĩa phương thức find_latest_time nhận chuỗi thời gian.
  • Chuyển chuỗi thành danh sách ký tự.
  • Duyệt qua từng ký tự, nếu gặp '?' thì thay thế theo quy tắc:
    • Vị trí 0 (chữ số hàng chục của giờ): nếu chữ số tiếp theo là '?' hoặc 0-3 thì đặt '2', ngược lại '1'.
    • Vị trí 1 (chữ số hàng đơn vị của giờ): nếu chữ số đầu là '2' thì đặt '3', ngược lại '9'.
    • Vị trí 3 (chữ số hàng chục của phút): luôn đặt '5'.
    • Vị trí 4 (chữ số hàng đơn vị của phút): luôn đặt '9'.
  • Gộp danh sách thành chuỗi và in ra.
  • Khởi tạo chuỗi thời gian có '?', hiển thị và gọi phương thức.