- 说明
- 代码
这道题需要用到正则的知识,遗憾的是我还没学,所以只能面向测试编程了doge
代码也就图一乐,家人们别仔细看了
def strhex_cutf0(s_hex,s_split):
s_hex = list(s_hex.lstrip('0'))
s_hex.reverse()
flag = 0
ret = 0
time = 1
for i in s_hex:
try:
temp = int(i)
except:
temp = 0
flag = 1
ret += temp*time
time *= 16
print(ret)
if(s_split=='.' and ret>597):
flag = 1
return str(hex(ret))[2:], flag
class Solution:
def validIPAddress(self, queryIP: str) -> str:
categories = ['IPv4', 'IPv6']
s_split = '.' if '.' in queryIP else ':'
if(s_split=='.'):
que_split = queryIP.lower().split(s_split)
print(que_split)
if(len(que_split)!=4):
return 'Neither'
ret_lt = []
flag = 0
for s in que_split:
str_split, temp = strhex_cutf0(s,s_split)
flag += temp
ret_lt.append(str_split)
if(s_split.join(ret_lt)==queryIP and flag==0):
ret = categories[s_split==':']
else:
ret = 'Neither'
else:
ret = categories[s_split==':']
que_lower = queryIP.lower()
que_split = que_lower.split(s_split)
if(len(que_split)!=8 or '' in que_split):
return 'Neither'
for i in que_split:
for j in list(i):
if(ord(j)>ord('f')):
ret = 'Neither'
break
if(len(i)>4):
ret = 'Neither'
return ret



