题解 | #判断两个IP是否属于同一子网#
判断两个IP是否属于同一子网
https://www.nowcoder.com/practice/34a597ee15eb4fa2b956f4c595f03218
while True:
try:
def hefa(m):
a = list(map(int, m.split(".")))
for i in range(4):
if not 0 <= a[i] <= 255:
return False
return True
def hefa_yanma(n):
b = list(map(int, n.split(".")))
for i in range(len(b)):
b[i] = bin(b[i])[2:].rjust(8, "0")
m = "".join(b)
for i in range(len(m)-1):
if m[i] == "0" and m[i + 1] == "1":
return False
return True
def zhuanhuan(a):
b = list(map(int, a.split(".")))
for i in range(len(b)):
b[i] = bin(b[i])[2:].rjust(8, "0")
return b
def and_zhuanhaun(a, b):
c = [[] for i in range(4)]
for i in range(4):
e = ""
for j in range(8):
if a[i][j] == "0" or b[i][j] == "0":
e += "0"
else:
e += "1"
c[i] = e
return c
def duibi(a, b):
if a == b:
print("0")
else:
print("2")
m, a, b = input(), input(), input()
if hefa(a) and hefa(b) and hefa(m) and hefa_yanma(m):
m = zhuanhuan(m)
a = zhuanhuan(a)
b = zhuanhuan(b)
x = and_zhuanhaun(m, a)
y = and_zhuanhaun(m, b)
duibi(x, y)
else:
print(1)
except:
break
将每一个模块都定义函数。

查看9道真题和解析