题解 | #判断两个IP是否属于同一子网#
判断两个IP是否属于同一子网
https://www.nowcoder.com/practice/34a597ee15eb4fa2b956f4c595f03218
while True:
try:
mask = list(map(int,input().split('.')))
ip1 = list(map(int,input().split('.')))
ip2 = list(map(int,input().split('.')))
if max(mask+ip1+ip2)>255 or min(mask+ip1+ip2)<0:
print(1)
continue
m10 = ''.join([bin(int(i))[2:].rjust(8,'0') for i in mask])
zero_index = m10.find('0')
one_index = m10[::-1].find('1')
if zero_index + one_index != 32:
print(1)
continue
z1 = [ip1[i]&mask[i] for i in range(4)]
z2 = [ip2[i]&mask[i] for i in range(4)]
if z1 == z2:
print(0)
else:
print(2)
except Exception as e:
if str(e).startswith('EOF'):
break
print(1)

查看1道真题和解析