题解 | #验证IP地址#

验证IP地址

http://www.nowcoder.com/practice/55fb3c68d08d46119f76ae2df7566880

前面的大哥写得挺好的,就是漏了点 像1.1.1. 3eGF之类的 我给大哥补上

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 验证IP地址
# @param IP string字符串 一个IP地址字符串
# @return string字符串
#
class Solution:
    def solve(self , IP: str) -> str:
        num = 0
        if '.' in IP:
            for ip in IP.split('.'):
                print(ip)
                if (ip.isdigit() is False) or ip == "" or ip[0] == '0' or (not 0<= int(ip) <=255) or IP[-1]=='.':
                    return 'Neither'
            return 'IPv4'
        if ':' in IP:
            for ip in IP.split(":"):
                if ip == "" or (len(ip)>1 and len(ip) == ip.count('0')) or len(ip)>4 or IP[-1]==":":
                    return 'Neither'
                try:
                    int(ip,16)
                except:
                    return 'Neither'
        return 'IPv6'
        # write code here
全部评论
len(ip)>1 and len(ip) == ip.count('0') 根据题干Pv6 地址由8组16进制的数字来表示,每组表示 16 比特。这些组数字通过 (":")分割。比如, 2001:0db8:85a3:0000:0000:8a2e:0370:7334 是一个有效的地址。 0000不就变成无效了么?
1 回复 分享
发布于 2022-04-12 22:28
好人一生平安
点赞 回复 分享
发布于 2022-03-17 21:23
都是大哥,大哥带带我这小白
点赞 回复 分享
发布于 2022-04-09 15:51
try: int(ip,16) except: return 'Neither' 这一步是为什么
点赞 回复 分享
发布于 2022-04-17 15:31

相关推荐

手撕没做出来是不是一定挂
Chrispp3:不会,写出来也不一定过
点赞 评论 收藏
分享
10-06 12:46
门头沟学院 Java
跨考小白:定时任务启动
点赞 评论 收藏
分享
评论
6
1
分享
牛客网
牛客企业服务