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

Chương trình Python kiểm tra định dạng mã bưu chính


Giả sử chúng ta có một mã bưu chính, chúng ta phải kiểm tra xem nó có hợp lệ hay không. Một mã bưu chính hợp lệ có các tiêu chí sau:

  • Nó phải là một số trong khoảng từ 100000 đến 999999 (cả hai đều bao gồm).

  • Nó không được chứa hơn một cặp chữ số lặp lại xen kẽ.

Vì vậy, nếu đầu vào là s = "700035", thì đầu ra sẽ là True vì nó nằm trong khoảng 100000 đến 999999 và không có chữ số liên tiếp nào giống nhau.

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

  • n := độ dài s
  • nb := 0
  • ok := True
  • với i từ 0 đến n - 1, thực hiện
    • ok := ok và s[i] là chữ số
    • với i từ 0 đến n-3, thực hiện
      • nb := nb + (1 nếu s[i] giống s[i+2] ngược lại 0)
  • trả về (true khi ok đúng và n bằng 6 và s[0] khác '0' và nb < 2), ngược lại false

Ví dụ

Hãy xem triển khai sau để hiểu rõ hơn:

def solve(s):
    n = len(s)
    nb = 0
    ok = True
    for i in range(n):
        ok = ok and s[i].isdigit()
    for i in range(n-2):
        nb += s[i] == s[i+2]
    return ok and n == 6 and s[0] != '0' and nb < 2

s = "700035"
print(solve(s))

Đầu vào

"700035"

Đầu ra

True