题解 | #判断两个IP是否属于同一子网#
判断两个IP是否属于同一子网
https://www.nowcoder.com/practice/34a597ee15eb4fa2b956f4c595f03218
while True:
try:
x = input().split(".")
y = input().split(".")
z = input().split(".")
//从用户那里获取三个用点分隔的字符串,然后分别存储在变量 x、y 和 z 中。这些字符串代表IP地址
# 将输入的字符串转换为整数列表
x = [int(i) for i in x]
y = [int(i) for i in y]
z = [int(i) for i in z]
# 检查IP地址的有效性
if x[0] != 255 or x[3] != 0 or max(x + y + z) > 255 or min(x + y + z) < 0:
print("1")
else:
m = []
n = []
for i in range(len(x)):
# 转换为二进制字符串,并去掉前缀'0b'
x[i] = bin(x[i]).replace("0b", "")
y[i] = bin(y[i]).replace("0b", "")
z[i] = bin(z[i]).replace("0b", "")
# 计算按位与,并添加到列表中
m.append(int(x[i], 2) & int(y[i], 2))
n.append(int(x[i], 2) & int(z[i], 2))
# 比较两个列表是否相等
if m == n:
print("0")
else:
print("2")
except: # 捕获所有异常,但不打印错误信息
break # 遇到异常则退出循环

