https://leetcode.com/problems/validate-ip-address/
Example 1:
Input: IP = "172.16.254.1"
Output: "IPv4"
Explanation: This is a valid IPv4 address, return "IPv4".
Example 2:
Input: IP = "2001:0db8:85a3:0:0:8A2E:0370:7334"
Output: "IPv6"
Explanation: This is a valid IPv6 address, return "IPv6".
Example 3:
Input: IP = "256.256.256.256"
Output: "Neither"
Explanation: This is neither a IPv4 address nor a IPv6 address.
Example 4:
Input: IP = "2001:0db8:85a3:0:0:8A2E:0370:7334:"
Output: "Neither"
Example 5:
Input: IP = "1e1.4.5.6"
Output: "Neither"
class Solution(object):
def validIPAddress(self, IP):
"""
:type IP: str
:rtype: str
"""
isValid = True
v4 = IP.split('.')
if len(v4) == 4:
for x in v4:
if x == '' or (x[0] == '0' and len(x) != 1) or not x.isdigit() or int(x) > 255:
isValid = False
break
if isValid:
return 'IPv4'
v6 = IP.split(':')
if len(v6) == 8:
for x in v6:
if x == '' or len(x) > 4 or not all(c in hexdigits for c in x):
isValid = False
break
if isValid:
return 'IPv6'
return 'Neither'