Validate IP Address
I got this problem during an interview. And would like to get some code review. I also wrote several tests with the expected output, and they all passed as expected.
Validate an IP address (IPv4). An address is valid if and only if it is in the form "X.X.X.X", where each X is a number from 0 to 255.
For example, "12.34.5.6", "0.23.25.0", and "255.255.255.255" are valid IP addresses, while "12.34.56.oops", "1.2.3.4.5", and "123.235.153.425" are invalid IP addresses.
Examples:
"""
ip = '192.168.0.1'
output: true
ip = '0.0.0.0'
output: true
ip = '123.24.59.99'
output: true
ip = '192.168.123.456'
output: false
"""
def validateIP(ip):
#split them by '.' , and store them in an array
#check the array if the length is 4 length
arr = ip.split('.')
if len(arr) != 4:
return False
#0 check for special edge cases when non-digit
#1. check if they are digit,
#2. check if check the integer is between 0 and 255
for part in arr:
if len(part) > 1:
if part[0] == '0':
return False
if not part.isdigit():
return False
digit = int(part)
if digit < 0 or digit > 255:
return False
return True
#case#0
ip0="08.0.0.0" # False
test0= validateIP(ip0)
print(test0)
#case#1
ip1 = "192.168.0.1"
test1 = validateIP(ip1)
print(test1)
#case#2
ip2 = '0.0.0.0'
test2 = validateIP(ip2)
print(test2)
#case#3
ip3 = '123.24.59.99'
test3 = validateIP(ip3)
print(test3)
#case#4
ip4 = '192.168.123.456'
test4 = validateIP(ip4)
print(test4)
#case5
ip5 = "255.255.255.255"
test5 = validateIP(ip5)
print(test5)