这道题描述不是很清楚,示例中的情况只属于提交问题中的一小部分,提交问题中会有‘+’、‘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