题解 | #判断两个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  # 遇到异常则退出循环

全部评论

相关推荐

有工作后先养猫:太好了,是超时空战警,我们有救了😋
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务