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

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

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

while 1:

    try:

        ips = list(map(intinput().split('.')))

        ip1 = list(map(intinput().split('.')))

        ip2 = list(map(intinput().split('.')))

        if max(ips)>255 or max(ip1)>255 or max(ip2)>255 or min(ips)<0 or min(ip1)<0 or min(ip2)<0:

            print('1')

            continue

        # for i in range(4):

        #     out_bin = bin(ips[i])[2:]

        #     out_bin = out_bin.rjust(8, '0')

        #     ips[i] = out_bin

        ips_bin = ''.join([bin(i)[2:].rjust(8'0'for i in ips])

        if ips_bin.find('01') != -1:

           print('1')

           break

        # for i in range(4):

        #     out_bin = bin(ip1[i])[2:]

        #     out_bin = out_bin.rjust(8, '0')

        #     ip1[i] = out_bin

        ip1_bin = ''.join([bin(i)[2:].rjust(8'0'for i in ip1])

        # for i in range(4):

        #     out_bin = bin(ip2[i])[2:]

        #     out_bin = out_bin.rjust(8, '0')

        #     ip2[i] = out_bin

        ip2_bin = ''.join([bin(i)[2:].rjust(8'0'for i in ip2])

        if bin(int(ips_bin,2)&int(ip1_bin,2)) == bin(int(ips_bin,2)&int(ip2_bin,2)):

            print('0')

            continue

        else:

            print('2')

            continue

    except:

        break

全部评论

相关推荐

熊大不大:微信也是华为旗下吧,我看我朋友也是华为工牌写wx
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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