题解 | #合法IP#

https://www.nowcoder.com/practice/995b8a548827494699dc38c3e2a54ee9

def judge(str1):
    str2=str1.replace('.','')  #将【.】去除,遍历str只要不是数字,就返回NO
    for i in str2:
        if not i.isdigit():
            return 'NO'
    lis1=str1.split('.')   #根据【.】分割成列表,当str第一个元素是【.】,或者两个【.挨在一起】,分割后列表中就会出现空字符串【‘’】,此时需要返回NO
    for i in lis1:
        if i == '':
            return 'NO' 
    if len(lis1)!=4:     #首先判断列表长度,不为4的都返回NO
        return 'NO'
    else:
        for i in range(4):
            if len(lis1[i])==3 and lis1[i][0]=='0' :  #当i是三位数且第一位是0时返回NO
                return 'NO'
            elif len(lis1[i])==2 and lis1[i][0]=='0': #当i是两位数且第一位是0时返回NO
                return 'NO'
            else:                         #当i的整形值不在【0~255】之间时返回NO
                if int(lis1[i])<0 or int(lis1[i])>255:
                    return 'NO'
#如果for循环结束了,都没有返回值,则返回YES
        return 'YES'          
n=input()
print(judge(n))

全部评论

相关推荐

fRank1e:吓得我不敢去外包了,但是目前也只有外包这一个实习,我还要继续去吗
点赞 评论 收藏
分享
小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务