# IPV4地址可以用一个32位无符号整数来表示,一般用点分方式来显示, # 点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此正号不需要出现), # 如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。 # 现在需要你用程序来判断IP是否合法。 # 数据范围:数据组数:1≤t≤18 # 进阶:时间复杂度:O(n),空间复杂度:O(n) # 输入一个ip地址,保证不包含空格 # 输出描述: # 返回判断的结果YES or NO def ip_recognize(ip): if isinstance(ip, str): if len(ip) == len(ip.replace(" ", "")): ip_list = ip.split(".") if len(ip_list) == 4: for i in range(4): ip_i = ip_list[i] if ip_i.isdigit(): ip_int = int(ip_i) if 0 <= ip_int <= 255: return "YES" else: return "NO" else: return "NO" else: return "NO" else: return "NO" else: return "NO" if __name__ == "__main__": ip1 = "255.255.255.1" ip2 = "25b.255.255.1000" ip3 = "255.255.255" ip4 = "25 5.255.255" print("ip1 is: ", ip_recognize(ip1)) print("ip2 is: ", ip_recognize(ip2)) print("ip3 is: ", ip_recognize(ip3)) print("ip4 is: ", ip_recognize(ip4))