题解 | #合法IP#
合法IP
https://www.nowcoder.com/practice/995b8a548827494699dc38c3e2a54ee9
import sys for line in sys.stdin: a = line.strip().split('.') # 按字符'.'对字符串进行分割,获得IP地址中数的列表 info = True #设置标志位,判断IP中的所有数是否合法,既不大于255且都为十进制合法数字 if len(a) != 4:#如果列表长度不为4,则不是合法IP info = False else: for i in a: if i.isdecimal()==False or len(i)>1 and int(i[0])==0:#列表中存在非十进制数(空字符''、罗马字符、汉字字符等,或有不合法数(比如数的开头为0,01),则不是合法IP info = False break elif int(i) > 255:#数字超出8位二进制数的表示范围,则不是合法IP info = False break else: continue if info == True: # 根据标志位info判断,IP是否合法 print("YES") else: print("NO")
主要是在提交的时候,会出现一些特殊情况。