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

全部评论

相关推荐

11-06 10:58
已编辑
门头沟学院 嵌入式工程师
双非25想找富婆不想打工:哦,这该死的伦敦腔,我敢打赌,你简直是个天才,如果我有offer的话,我一定用offer狠狠的打在你的脸上
点赞 评论 收藏
分享
10-15 09:13
已编辑
天津大学 soc前端设计
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务