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

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

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

看了大家的代码我发现我想多了。。。

但我这个应该是无敌版的,以后不管他再加什么样的新的测试用例我百分百必能过!!

比如adsf.1234.5123.1234123.51251.234.123.5123.5.23415.1234.5.341.5g.13.g.1346.34.t34.1t.134g13.y.13t4.hu89

def y(list1):
    list1 = list(map(int,list1))
    str1 = ''
    for i in list1:
        str1 = str1 + '0'*(10-len(bin(i))) + bin(i)[2:]
    str1 = str1.lstrip('1')
    if "1" in str1:
        return 0
    else:
        return 1
while 1:
    try:
        yanma =input().split(".")
        ip1 = input().split(".")
        ip2 = input().split(".")
        n = 0
        if len(yanma) != 4 or len(ip1) != 4 or len(ip2) != 4:
            n=1
        else:
            for i in range(4):
                if yanma[i].isdecimal() and ip1[i].isdecimal() and ip2[i].isdecimal():
                    if 0 <= int(yanma[i]) <=255 and 0 <= int(ip1[i]) <=255 and 0 <= int(ip2[i]) <=255:
                        ip1[i] = int(ip1[i]) & int(yanma[i])
                        ip2[i] = int(ip2[i]) & int(yanma[i])
                    else:
                        n=1
                        break
                else:
                    n=1
                    break
        if n == 1:
            print(1)
        else:
            if y(yanma): 
                if ip1 == ip2:
                    print(0)
                else:
                    print(2)
            else:
                print(1)
    except:
        break

全部评论

相关推荐

我是没经验的毕业生,这啥情况啊会不会是hr在刷kpi
JamesGosli...:字节boss属于是群发了,我都快入职字节了,其他部门还在和我boss打招呼
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-02 14:45
bg是二本双一流硕,目标是Java后端开发岗,投暑期实习0大厂面试,只有极少的大厂测开,可能投的晚加上简历太烂加上0实习?求大佬们给个建议
程序员小白条:别去小厂,初创或者外包,尽量去中小,100-499和500-999,专门做互联网产品的,有公司自研的平台和封装的工具等等,去学习一些业务相关的,比如抽奖,积分兑换,SSO认证,风控,零售等等,目标 Java 后端开发吗?你要不考虑直接走大厂测开?如果技术不行的话,有面试你也很难过的
实习,不懂就问
点赞 评论 收藏
分享
评论
10
1
分享

创作者周榜

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