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

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

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

while True:
    try:
        mask = list(map(int,input().split('.'))) 
        ip1 = list(map(int,input().split('.')))
        ip2 = list(map(int,input().split('.')))
        if max(mask+ip1+ip2)>255 or min(mask+ip1+ip2)<0:
            print(1)
            continue
        m10 = ''.join([bin(int(i))[2:].rjust(8,'0') for i in mask])
        zero_index = m10.find('0')
        one_index = m10[::-1].find('1')
        if zero_index + one_index != 32:
            print(1)
            continue
        z1 = [ip1[i]&mask[i] for i in range(4)]
        z2 = [ip2[i]&mask[i] for i in range(4)]
        if z1 == z2:
            print(0)
        else:
            print(2)
    except Exception as e:
        if str(e).startswith('EOF'):
            break
        print(1)
        

全部评论

相关推荐

10-16 19:36
已编辑
浙江外国语学院 Java
程序员猪皮:看不到八股什么意思
点赞 评论 收藏
分享
小谷围鸡肉卷阿姨:+1,腾子投完一动不动
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务