Giả sử chúng ta có một mã bưu điện, chúng ta phải kiểm tra xem nó có hợp lệ hay không. Mã bưu chính hợp lệ có các tiêu chí sau
-
Nó phải là một số trong phạm vi từ 100000 đến 999999 (bao gồm cả hai).
-
Nó không được chứa nhiều 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à Đúng vì giá trị này nằm trong khoảng 100000 đến 999999 và không có chữ số liên tiếp.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- n:=kích thước của s
- nb:=0
- ok:=True
- đối với tôi trong phạm vi từ 0 đến n - 1, thực hiện
- ok:=ok và s [i] là một chữ số thì
- đối với tôi trong phạm vi từ 0 đến n-3, hãy thực hiện
- nb:=nb + (1 nếu s [i] giống s [i + 2] nếu không thì 0)
- return (true khi ok là true và n giống với 6 và s [0] không giống với '0' và nb <2), nếu không thì trả về false
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn
def giải quyết (s):n =len (s) nb =0 ok =Đúng cho tôi trong phạm vi (n):ok =ok và s [i] .isdigit () cho tôi trong phạm vi (n-2) :nb + =s [i] ==s [i + 2] trả về ok và n ==6 và s [0]! ='0' và nb <2s ="700035" print (giải (s))Đầu vào
"700035"Đầu ra
Đúng