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

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

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

def check_ip(s):
    ip_list = list(map(int, s))
    if len(ip_list) != 4 or max(ip_list) > 255 or min(ip_list) < 0:
        return False
    return True


while True:
    try:
        valid = True 
        x = input().split(".")
        y = input().split(".")
        z = input().split(".")

        valid = valid and check_ip(x) and check_ip(y) and check_ip(z) # 验证ip合法

        bin_list = [(bin(int(xx))).replace("0b", "").rjust(8, "0") for xx in x] # 不添加rjust则1.255.255.0合法
        mask = "".join(bin_list)
        valid = valid and (mask.rfind("1") + 1) == mask.find("0") # 验证掩码

        m, n = [], []
        if not valid:
            print("1")
        else:
            for i in range(len(x)):
                m.append(int(x[i]) & int(y[i]))
                n.append(int(x[i]) & int(z[i]))
            print("0" if m == n else "2")
    except:
        break

全部评论

相关推荐

预计下个星期就能开奖吧,哪位老哥来给个准信
华孝子爱信等:对接人上周说的是这周
点赞 评论 收藏
分享
10-09 00:50
已编辑
长江大学 算法工程师
不期而遇的夏天:1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
Hello_WordN:咱就是说,除了生命其他都是小事,希望面试官平安,希望各位平时也多注意安全
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务