2025年1月5日
牛客网-华为题库-HJ39 判断两个IP是否属于同一子网
项目的详细信息参见:
import sys
mask = list(map(int, input().split('.')))
ip1 = list(map(int, input().split('.')))
ip2 = list(map(int, input().split('.')))
def islegalmask(l):
base2 = []
for i in l:
if i < 0 or i > 255:
return False
for i in range(len(l)):
base2.append(bin(mask[i])[2:].rjust(8, '0'))
base2s = ''.join(base2)
if '01' in base2s:
return False
else:
cnt = 0
for j in base2s:
if j == '0':
cnt += 1
if cnt == len(base2s) or cnt == 0:
return False
return base2s
def islegalip(l):
for i in l:
if i < 0 or i > 255:
return False
return True
if not islegalmask(mask) or not islegalip(ip1) or not islegalip(ip2):
print('1')
else:
flag = 0
for i in range(len(mask)):
if mask[i] & ip1[i] != mask[i] & ip2[i]:
print('2')
flag = 1
break
if flag == 0:
print('0')