这道题描述不是很清楚,示例中的情况只属于提交问题中的一小部分,提交问题中会有‘+’、‘03’或者空等情况。查看解题中的答案发现很多已经过时,提交无法通过。废了些时间做出来了,和大家分享一下。

while True:
    try:
        s = input().split('.')
        c = 0  # 计数器,指导‘YES’输出
        if len(s) != 4:  # 位数不够4,直接NO
            print('NO')
            continue
        for i in s:
            if not i.isdigit():  # 存在非数字字符,直接NO
                print('NO')
                continue
            elif int(i) > 255 or (i.startswith('0') and len(i) > 1):  # 最大值大于255 或者数字为'03'这种格式的,NO
                print('NO')
                continue
            else:
                c +=1
        if c ==4:  # 计数器,4次循环结束后再执行YES输出
            print('YES')
    except:
        break