这题主要是由几种特殊情况比较烦 用数组而不是直接用flag的好处就是不用在意这种情况; 符合.不符合.符合.符合 由于中间不符合,flag为0,但是后面有符合的,flag又置为1,最终flag还是1,用数组的话就能解决这问题
``` python []
while True:
try:
lst=list(input().split("."))
#print(lst)
#flag=1
tmpflag=[]#非指向性
if len(lst)!=4:#针对只写了3个的
tmpflag.append(0)
for i in lst:
if i.isnumeric():#针对+1,+4这种奇葩的结构,就用这个过滤
if int(i) > 255 or (i.startswith('0') and len(i) > 1):#考虑03这种情况,startwith
tmpflag.append(0)
else:
tmpflag.append(1)
else:
tmpflag.append(0)
if 0 in tmpflag:
print("NO")
else:
print("YES")
except:
break