Skip to content

Latest commit

 

History

History
74 lines (57 loc) · 1.4 KB

468. Validate IP Address.md

File metadata and controls

74 lines (57 loc) · 1.4 KB

468. Validate IP Address

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'