这题主要是由几种特殊情况比较烦 用数组而不是直接用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