题解 | #判断两个IP是否属于同一子网#

判断两个IP是否属于同一子网

http://www.nowcoder.com/practice/34a597ee15eb4fa2b956f4c595f03218

while True:
    try:
        mask = input().split(".")
        ip1 = input().split(".")
        ip2 = input().split(".")
        if len(mask) != 4 or len(ip1) != 4 or len(ip2) != 4:
            print("1")
            break
        for i in range(4):
            mask[i] = int(mask[i])
            ip1[i] = int(ip1[i])
            ip2[i] = int(ip2[i])
        a = mask + ip1 + ip2
        if mask[0] != 255 or mask[3] != 0 or max(a)> 255 or min(a) < 0:
            print("1")
        else:
            b = True
            for i in range(4):
                # 两个ip每8位和对应掩码判断【与】运算是否相等,不等则说明不在同一掩码内,提前退出
                if (mask[i] & ip1[i]) != (mask[i] & ip2[i]):
                    b = False
                    break
            print("0") if b else print("2")
    except:
        break
全部评论

相关推荐

这算盘打的
程序员小白条:都这样的,都是潜规则,你自己说可以实习一年就行了,实习可以随便跑路的
点赞 评论 收藏
分享
自学java狠狠赚一...:骗你点star的,港卵公司,记得把star收回去
点赞 评论 收藏
分享
06-04 09:27
门头沟学院 Java
点赞 评论 收藏
分享
小叮当411:应该是1-3个月吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务