Python program to validate postal address format


Suppose we have a postal code we have to check whether it is valid or not. A valid postal code has following criteria

  • It must be a number in the range from 100000 to 999999 (both inclusive).

  • It must not contain more than one alternating repetitive digit pair.

So, if the input is like s = "700035", then the output will be True as this is in range 100000 to 999999 and there are no consecutive digits either.

To solve this, we will follow these steps −

  • n := size of s
  • nb := 0
  • ok := True
  • for i in range 0 to n - 1, do
    • ok := ok and s[i] is a digit, then
    • for i in range 0 to n-3, do
      • nb := nb + (1 if s[i] is same as s[i+2] otherwise 0)
  • return (true when ok is true and n is same as 6 and s[0] is not same as '0' and nb < 2), otherwise return false

Example

Let us see the following implementation to get better understanding

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

Input

"700035"

Output

True

Updated on: 12-Oct-2021

851 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements