题解 | #判断两个IP是否属于同一子网#
判断两个IP是否属于同一子网
https://www.nowcoder.com/practice/34a597ee15eb4fa2b956f4c595f03218
def check_ip(ipl):
if len(ipl) !=4 or '' in ipl:
return False
for ip in ipl:
if not 0<=int(ip)<=255:
return False
return True
def check_mask(maskl):
if not check_ip(maskl):
return False
out = []
for i in maskl:
out.append(bin(int(i))[2:].zfill(8))
maskb = ''.join(out)
if maskb.find('0') < maskb.rfind('1'):
return False
return True
def check_subnet(ipl,maskl):
ipb = []
maskb = []
res = []
for i in ipl:
ipb.append(bin(int(i))[2:].zfill(8))
for i in maskl:
maskb.append(bin(int(i))[2:].zfill(8))
for i in range(32):
res.append(int(''.join(ipb)[i]) and int(''.join(maskb)[i]))
return res
while True:
try:
mas = raw_input().split('.')
ip1 = raw_input().split('.')
ip2 = raw_input().split('.')
if check_mask(mas) and check_ip(ip1) and check_ip(ip2):
if check_subnet( ip1, mas) == check_subnet(ip2, mas):
print '0'
else:
print '2'
else:
print '1'
except:
break
安克创新 Anker公司福利 592人发布