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

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

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

import operator

def judge(i, jm=False):
    all_le_256 = all(map(lambda x: x in range(256), i))
    mask_valid = True
    if jm:
        bin_mask = "".join([bin(x)[2:].ljust(8, '0') for x in i])
        mask_valid = bin_mask.index("0") > bin_mask.rindex("1")
    return all_le_256 and mask_valid


def calc(i, j):
    return [iv & jv for iv, jv in zip(i, j)]


def main(m, i, j):
    if not all([judge(m, True), judge(i), judge(j)]):
        return 1
    return 0 if operator.eq(calc(m, i), calc(m, j)) else 2


while True:
    try:
        mask = list(map(int, input().split(".")))
        ip1 = list(map(int, input().split(".")))
        ip2 = list(map(int, input().split(".")))
        print(main(mask, ip1, ip2))
    except:
        break

全部评论

相关推荐

05-29 22:11
门头沟学院 Java
Elastic90:抛开学历造假不谈,这公司的招聘需求也挺怪的,Java开发还要求你有图文识别、移动端开发和c++的经验,有点逆天了。
点赞 评论 收藏
分享
05-09 13:22
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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