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

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

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


def check_ip(ipl):
    if len(ipl) !=4 or '' in ipl:
        return False
    for ip in ipl:
        if not 0<=int(ip)<=255:  
            return False
    return True

def check_mask(maskl):
    if not check_ip(maskl):
        return False
    out = []
    for i in maskl:
        out.append(bin(int(i))[2:].zfill(8))
    maskb = ''.join(out)
    if  maskb.find('0') < maskb.rfind('1'):
        return False
    return True

def check_subnet(ipl,maskl):
    ipb = []
    maskb = []
    res = []
    for i in ipl:
        ipb.append(bin(int(i))[2:].zfill(8))
    for i in maskl:
        maskb.append(bin(int(i))[2:].zfill(8))
    for i in range(32):
        res.append(int(''.join(ipb)[i]) and int(''.join(maskb)[i]))   
    return res
while True:
    try:
        mas = raw_input().split('.')
        ip1 = raw_input().split('.')
        ip2 = raw_input().split('.')
        if check_mask(mas) and check_ip(ip1) and check_ip(ip2):
            if check_subnet( ip1, mas) == check_subnet(ip2, mas):
                print '0'
            else:
                print '2'
        else:
            print '1'
    except:
        break

全部评论

相关推荐

11-07 16:07
深圳大学 运营
前端飞升:学长,阿里不是卡双非吗,我深也能去吗
点赞 评论 收藏
分享
迷茫的大四🐶:那你问他上班之后老实了没
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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