题解 | #识别有效的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)