题解 | 验证IP地址

验证IP地址

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

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 验证IP地址
# @param IP string字符串 一个IP地址字符串
# @return string字符串
#
class Solution:
    def IPV4(self, IP):
        # 检查点号的数量是否为 3
        if IP.count(".") != 3:
            return "Neither"
        ipv4_list = IP.split(".")
        # IPv4 地址必须由 4 部分组成
        if len(ipv4_list) != 4:
            return "Neither"
        for part in ipv4_list:
            # 检查每一部分是否为空
            if part == "":
                return "Neither"
            try:
                num_int = int(part)
                # 检查数字范围是否在 0 - 255 之间
                if num_int > 255 or num_int < 0:
                    return "Neither"
                # 检查是否有多余的前导 0
                if len(part) > 1 and part[0] == "0":
                    return "Neither"
            except ValueError:
                return "Neither"
        return "IPv4"

    def IPV6(self, IP):
        # 检查冒号的数量是否为 7
        if IP.count(":") != 7:
            return "Neither"
        ipv6_list = IP.split(":")
        # IPv6 地址必须由 8 部分组成
        if len(ipv6_list) != 8:
            return "Neither"
        valid_chars = set('0123456789abcdefABCDEF')
        for part in ipv6_list:
            # 检查每一部分的长度是否在 1 - 4 之间
            if len(part) < 1 or len(part) > 4:
                return "Neither"
            # 检查每一部分是否只包含合法的十六进制字符
            for char in part:
                if char not in valid_chars:
                    return "Neither"
        return "IPv6"

    def solve(self, IP: str) -> str:
        output = ""
        if "." in IP and ":" not in IP:
            output = self.IPV4(IP)
        elif ":" in IP and "." not in IP:
            output = self.IPV6(IP)
        else:
            output = "Neither"
        return output

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-18 18:30
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
最近拿到了正浩的提前批offer感觉自己的实力得到了肯定,也给了我更多底气
搞机墨镜猫:正浩提前批官网好像就只有电力电子软硬件,哥们投的是这两个岗位吗
26届校招投递进展
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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