题解 | #判断两个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)
        

全部评论

相关推荐

想顺利毕业的猕猴桃在看牛客:好几个月没面试了,腾讯留面评吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务