题解 | #识别有效的IP地址和掩码并进行分类统计#

识别有效的IP地址和掩码并进行分类统计

https://www.nowcoder.com/practice/de538edd6f7e4bc3a5689723a7435682

A,B,C,D,E,NO,__ = 0,0,0,0,0,0,0
while True:
    try:
        n = input().split('~')
        zi = n[0]
        yan = n[1]
        res_list = zi.split('.')
        res_list1 = yan.split('.')
        if res_list[0] != '0' and res_list[0] != '127':
            if '' in res_list or '' in res_list1 or len(res_list) != 4 or len(res_list1) != 4:
                NO += 1
            else:
                res_list = list(map(int,res_list))
                res_list1 = list(map(int,res_list1))
                res_str = ''
                for i in res_list1:
                    res_str += str(bin(i))[2:].rjust(8,'0')
                res_str1 = sorted(res_str,reverse=True)
                if list(res_str) != res_str1 or len(set(res_str1)) != 2 or res_str1.count('1') == 1:
                    NO += 1
                else:
                    for i in range(4):
                        if res_list[i] not in range(0,256) or res_list1[i] not in range(0,256):
                            NO +=1
                            break
                    else:
                        if res_list[0] in range(1,127):
                            A += 1
                            if res_list[0] == 10:
                                __ += 1
                        elif res_list[0] in range(128,192):
                            B += 1
                            if res_list[0] == 172 and res_list[1] in range(16,32):
                                __ += 1
                        elif res_list[0] in range(192,224):
                            C += 1
                            if res_list[0] == 192 and res_list[1] == 168:
                                __ += 1
                        elif res_list[0] in range(224,240):
                            D += 1
                        elif res_list[0] in range(240,256):
                            E += 1
    except:
        break
print(A,end=' ')
print(B,end=' ')
print(C,end=' ')
print(D,end=' ')
print(E,end=' ')
print(NO,end=' ')
print(__)

全部评论

相关推荐

07-23 18:25
河北大学 Java
点赞 评论 收藏
分享
Lorn的意义:你这种岗位在中国现在要么牛马天天加班,要么关系户进去好吃好喝,8年时间,真的天翻地覆了,对于资本来说你就说一头体力更好的牛马,哎,退伍没有包分配你真的亏了。
点赞 评论 收藏
分享
Gaynes:查看图片
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-25 18:02
来组里2个月了,天天让打杂,写的代码不超过200行。现在已经开始摆烂冲秋招了。我感觉4个月,就算周六日全天睡觉,周一到周五一直看黑马也比我来节子实习学到的东西多。
小熊梦奇:😅节子那么多文档,你是一个都不看啊。 大厂的意义在于内部系统对你开放,看明白事情起因经过结果解决措施,实在看不明白,直接聊天系统搜到对应团队去问当时的负责人,大部分情况下都会给你解答。 这才是大厂实习的精髓
实习生的蛐蛐区
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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