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

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

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

import sys
a,b,c,d,e,f,p=0,0,0,0,0,0,0
def abc(l):
    global a,b,c,d,e,f,p
    n0,n1=int(l[0]),int(l[1])
    if n0 in range(1,127):
        a+=1
        if n0==10:
            p+=1
    elif n0 in range(128,192):
        b+=1
        if n0==172 and n1 in range(16,32):
            p+=1
    elif n0 in range(192,224):
        c+=1
        if n0==192 and n1==168:
            p+=1
    elif n0 in range(224,240):
        d+=1
    elif n0 in range(240,256):
        e+=1
    else:
        f+=1

def isf(l):
    global f
    b=True
    if l[4]==l[5]==l[6]==l[7]=='0' or l[4]==l[5]==l[6]==l[7]=='255':
        b=False
        f+=1
        return b
    else:
        st=''
        for i in l[4:]:
            ss=str(bin(int(i)))[2:]
            while len(ss)<8:
                ss='0'+ss
            st+=ss
        if '01' in st:
            b=False
            f+=1
        return b

def isnull(l):
    global f
    b=True
    for i in l:
        if i=='':
            b=False
            f+=1
            break
    return b     

def isno(l):
    if l[0] in ('0','127'):
        return False
    else:
        return True   

for line in sys.stdin:
    l = line.split('~')
    li=l[0].split('.')
    li+=l[1].strip().split('.')
    if isno(li):
        if isnull(li):
             if isf(li):
                abc(li)

print(a,b,c,d,e,f,p)

全部评论

相关推荐

04-17 18:32
门头沟学院 Java
野猪不是猪🐗:他跟你一个学校,你要是进来之后待遇比他好,他受得了?
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
03-29 08:32
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务