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

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

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

while True:
    try:

        def hefa(m):
            a = list(map(int, m.split(".")))
            for i in range(4):
                if not 0 <= a[i] <= 255:
                    return False
            return True

        def hefa_yanma(n):
            b = list(map(int, n.split(".")))
            for i in range(len(b)):
                b[i] = bin(b[i])[2:].rjust(8, "0")
            m = "".join(b)
            for i in range(len(m)-1):
                if m[i] == "0" and m[i + 1] == "1":
                    return False
            return True

        def zhuanhuan(a):
            b = list(map(int, a.split(".")))
            for i in range(len(b)):
                b[i] = bin(b[i])[2:].rjust(8, "0")
            return b

        def and_zhuanhaun(a, b):
            c = [[] for i in range(4)]
            for i in range(4):
                e = ""
                for j in range(8):
                    if a[i][j] == "0" or b[i][j] == "0":
                        e += "0"
                    else:
                        e += "1"
                c[i] = e
            return c

        def duibi(a, b):
            if a == b:
                print("0")
            else:
                print("2")

        m, a, b = input(), input(), input()
        if hefa(a) and hefa(b) and hefa(m) and hefa_yanma(m):
            m = zhuanhuan(m)
            a = zhuanhuan(a)
            b = zhuanhuan(b)
            x = and_zhuanhaun(m, a)
            y = and_zhuanhaun(m, b)
            duibi(x, y)

        else:
            print(1)
    except:
        break

将每一个模块都定义函数。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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