468. Validate IP Address - cocoder39/coco39_LC GitHub Wiki
468. Validate IP Address
class Solution:
def validIPAddress(self, queryIP: str) -> str:
segments = queryIP.split('.')
if len(segments) == 4:
if self.isV4(segments):
return 'IPv4'
else:
return 'Neither'
segments = queryIP.split(':')
if len(segments) == 8 and self.isV6(segments):
return 'IPv6'
return 'Neither'
def isV4(self, segments):
for segment in segments:
if len(segment) == 0 or len(segment) > 3:
return False
num = 0
for ch in segment:
if not ch.isdigit():
return False
if ch == '0' and num == 0 and len(segment) != 1:
return False
num = num * 10 + ord(ch) - ord('0')
if num > 255:
return False
return True
def isV6(self, segments):
for segment in segments:
if len(segment) == 0 or len(segment) > 4:
return False
for ch in segment:
if ch not in '0123456789abcdefABCDEF':
return False
return True