这个题不要做了,通过率低纯粹是SB,你按照标准的IPv4/IPv6以及题目的要求写代码,仍然通不过,SB!
题目提示也不要信!!!
最好的办法就是一次次试,一次次出错找到用例进行改。
浪费时间和精力。
烂题!
想体验的可以提交我下面的例程,玩玩就算了。
import re class Solution: def validIPAddress(self, IP): """ :type IP: str :rtype: str """ # 判断是否为IPv4 并且是4段 if "." in IP and len(IP.split('.')) == 4: if self.IPv4(IP): return "IPv4" # 判断是否为IPv6 并且是8段 elif ":" in IP and len(IP.split(':')) == 8: if self.IPv6(IP): return "IPv6" return "Neither" def IPv4(self, IP): for item in IP.split('.'): if not item: # 判断为空 return False if not re.findall("^\d+$", item): # 判断是否是纯数字 return False if int(item) > 255 or int(item) < 0: # 判断是否属于0-255 return False if str(int(item)) != str(item): # 判断是否有多余的0 return False return True def IPv6(self, IP): for item in IP.split(":"): if not item: # 判断为空 return False if not re.findall("^[a-fA-F\d]+$", item): # 判断是否有其他字符 return False if len(item) > 4: # 判断长度<=4 return False return True