这个题不要做了,通过率低纯粹是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