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

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

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

人生苦短,我用python 都不用做二进制,直接&运算hhh

while True:
    try:
        x = input().split('.')
        y = input().split('.')
        z = input().split('.')
        m, n = [], []
        for i in range(len(x)):
            x[i] = int(x[i])
            y[i] = int(y[i])
            z[i] = int(z[i])
        if x[0]!= 255 or x[3]!=0 or max(x+y+z)>255 or min(x+y+z)<0:
            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]))
            if m == n:
                print('0')
            else:
                print('2')
    except:
        break
全部评论
if x[0]!= 255 or x[3]!=0 这个能判断 掩码 非法??
4 回复 分享
发布于 2022-09-04 19:37 河南
前面都已经变过整数了,你与运算的时候不需要再转化为整形了,画蛇添足,很显然你是照着官方视频解答抄的,自己都没理解清楚
2 回复 分享
发布于 2022-11-19 12:44 江西
255.0.255.0按照代码应该判断为合法掩码吧,
2 回复 分享
发布于 2023-04-14 22:37 广东
真是个小机灵鬼┐(´-`)┌
点赞 回复 分享
发布于 2022-06-30 16:18
大神,max(x+y+z)>255 or min(x+y+z)<0是什么意思?怎么来的哈
点赞 回复 分享
发布于 2022-08-17 12:03 北京
厉害
点赞 回复 分享
发布于 2022-08-18 10:50 广东
最后与运算不用加int,前面已经int了
点赞 回复 分享
发布于 2022-09-01 10:05 江西
1.255.255.0 187.39.235.7 219.79.189.231 预期 输出 1 这个 都合法啊。。。
点赞 回复 分享
发布于 2022-09-04 19:42 河南
可能是我深度不够,我也觉得蹊跷
点赞 回复 分享
发布于 2022-10-31 15:57 陕西
抄袭官方解答而已,自己写出来更好
点赞 回复 分享
发布于 2022-11-19 11:32 江西
你这判断不了子掩网码啊
点赞 回复 分享
发布于 2023-05-19 14:31 陕西
我不明白十进制的&运算是否能取代二进制的&运算
点赞 回复 分享
发布于 2023-09-30 20:42 广西
我不太明白try的最后没有continue,为什么能完成输入3行处理一波
点赞 回复 分享
发布于 2023-10-10 17:48 湖北
根本没判断子网掩码。只是套题目,换个用例,例如下面的就不行了: 255.254.255.0 85.122.52.249 10.57.28.117
点赞 回复 分享
发布于 10-03 21:28 浙江

相关推荐

伟大的烤冷面被普调:暨大✌🏻就是强
点赞 评论 收藏
分享
23 11 评论
分享
牛客网
牛客企业服务