题解 | #判断两个IP是否属于同一子网#
判断两个IP是否属于同一子网
https://www.nowcoder.com/practice/34a597ee15eb4fa2b956f4c595f03218
def check(x,y,z): m_bin='' for i in x: #检查子网掩码是否合法 if i<0 or i>255: return False p=bin(i)[2::].zfill(8) m_bin+=p a=m_bin.find('0') #从左侧开始找'0' b=m_bin.rfind('1')#从右侧开始找'1' if a-b!=1 or b==-1: return False for j in y: #检查IP是否合法 if j<0 or j>255: return False for k in z: if k<0 or k>255: return False return True def And(x,y): #进行AND运算 AND=[] for i in range(4): AND.append(x[i]&y[i]) return AND while True: try: mask=list(map(int,input().split('.'))) ip1=list(map(int,input().split('.'))) ip2=list(map(int,input().split('.'))) if check(mask,ip1,ip2): a=And(mask,ip1) b=And(mask,ip2) if a==b: print(0) else: print(2) else: print(1) except: break