การตรวจสอบรหัสไปรษณีย์ (Postal Code Validation)
เงื่อนไขรหัสไปรษณีย์ที่ถูกต้อง:
- เป็นตัวเลข 6 หลัก (100000 - 999999)
- ไม่มี alternating repetitive digit pair มากกว่า 1 คู่ (เช่น 121 มีคู่ 1-1)
อัลกอริทึม
- ตรวจสอบความยาว 6 และตัวแรกไม่ใช่ '0'
- ตรวจสอบทุกตัวเป็นเลข
- นับ alternating repetitive pairs: s[i] == s[i+2] สำหรับ i=0..3
- ถ้าจำนวนคู่ < 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) → ผ่าน