IPV4地址可以用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此正号不需要出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。
现在需要你用程序来判断IP是否合法。
数据范围:数据组数:
进阶:时间复杂度:
,空间复杂度:%5C)
IPV4地址可以用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此正号不需要出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。
输入一个ip地址,保证不包含空格
返回判断的结果YES or NO
255.255.255.1000
NO
def abc():
str1 = input()
ip_list = list(str1.strip().split('.'))#分块
j=0
for i in ip_list:
try:#验证01这类和是否段里是纯数字
if i != str(int(i)):
print('NO')
return None
else:#验证数字是否在范围内
if 0<= int(i) and int(i)<= 255:
j += 1
continue
else:
print('NO')
return None
except Exception:
print('NO')
return None
if j == 4:#验证是否有四组数
print('YES')
else:
print('NO')
abc()
import sys
def is_valid_ip(ip):
parts = ip.split(".")
if len(parts) != 4:
return "NO"
for part in parts:
if not part.isdigit():
return "NO"
if int(part) < 0&nbs***bsp;int(part) > 255:
return "NO"
if part != "0" and part[0] == "0":
return "NO"
return "YES"
for line in sys.stdin:
line=line.strip('\n')
print(is_valid_ip(line))
def fn(s): n = len(s) num_cnt = 0 # 双指针 l=r=0 while r < n: r+=1 # 如果到达终点,或r指向'.', 检查[l,r])间的元素 if r == n&nbs***bsp;s[r] == '.': if not s[l:r].isdigit(): # 不是数字的话返回 return "NO" if r-l >= 2 and s[l] == '0': # 是数字且两位及以上但首位位为0,返回 return "NO" if not 0<=int(s[l:r])<=255: # 是正常数字但不在正确范围内 return "NO" # r指向下一位,l指向r r+=1 l=r num_cnt+=1 if num_cnt != 4: # 如果不满或大于4组数字 return 'NO' return "YES" while True: try: s = input() print(fn(s)) except: break
import re
try:
str1 = input()
str2 = re.match(r'\d+.\d+.\d+.\d+',str1).group()
list1 = str2.split('.')
if len(str2) != len(str1):
print('NO')
else:
res = 1
for i in list1:
if 0 <= int(i) < 10 and len(i) == 1:
pass
elif 10 <= int(i) <= 255:
pass
else:
res = 0
break
if res == 1:
print('YES')
else:
print('NO')
except:
print('NO') ipd = input()
def judge_ip(ipd):
ipds = ipd.split('.')
if len(ipds) !=4:
return False
for i in ipds:
if not i.isdigit():
return False
if i.startswith('0') and int(i)!=0:
return False
if int(i)<0&nbs***bsp;int(i)>255:
return False
return True
if judge_ip(ipd):
print("YES")
else:
print("NO") while True:
try:
a = input().split('.')
g = 0
for n in a:
if n.isdigit():
if 0<=int(n)<=255:
if len(n)>1 and n[0]=='0':
break
else:
g+=1
if g == 4:
print('YES')
else:
print('NO')
except:
break