Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมตรวจสอบรูปแบบรหัสไปรษณีย์ใน Python

การตรวจสอบรหัสไปรษณีย์ (Postal Code Validation)

เงื่อนไขรหัสไปรษณีย์ที่ถูกต้อง:

  • เป็นตัวเลข 6 หลัก (100000 - 999999)
  • ไม่มี alternating repetitive digit pair มากกว่า 1 คู่ (เช่น 121 มีคู่ 1-1)

อัลกอริทึม

  1. ตรวจสอบความยาว 6 และตัวแรกไม่ใช่ '0'
  2. ตรวจสอบทุกตัวเป็นเลข
  3. นับ alternating repetitive pairs: s[i] == s[i+2] สำหรับ i=0..3
  4. ถ้าจำนวนคู่ < 2 → ถูกต้อง

ตัวอย่างโค้ด

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))

ผลลัพธ์

True

คำอธิบาย

"700035": ความยาว 6, เริ่มไม่ใช่ 0, ทุกตัวเป็นเลข, alternating pairs: 7-0, 0-0, 0-3, 0-5 → มีคู่เดียว (0-0) → ผ่าน