LeetCode题解(0468):验证IP地址是否为IPv4或IPv6的地址(Python)
发布日期:2021-06-29 19:57:56
浏览次数:2
分类:技术文章
本文共 1056 字,大约阅读时间需要 3 分钟。
题目:(中等)
标签:字符串
解法 | 时间复杂度 | 空间复杂度 | 执行用时 |
---|---|---|---|
Ans 1 (Python) | O ( N ) O(N) O(N) | O ( N ) O(N) O(N) | 20ms (100.00%) |
Ans 2 (Python) | |||
Ans 3 (Python) |
LeetCode的Python执行用时随缘,只要时间复杂度没有明显差异,执行用时一般都在同一个量级,仅作参考意义。
解法一:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WHfAERPH-1597390607493)(LeetCode题解(0468)]:截图1.png)
class Solution: def validIPAddress(self, IP: str) -> str: # 尝试识别IPv4的IP地址 lst4 = IP.split(".") if len(lst4) == 4: for item in lst4: if not item.isdigit() or int(item) > 255 or (int(item) != 0 and item[0] == "0") or (int(item) == 0 and len(item) > 1): break else: return "IPv4" # 尝试识别IPv6的IP地址 chars = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"} lst6 = IP.upper().split(":") if len(lst6) == 8: for item in lst6: if len(item) == 0 or len(item) > 4 or not all([ch in chars for ch in item]): break else: return "IPv6" return "Neither"
转载地址:https://dataartist.blog.csdn.net/article/details/108005912 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月18日 02时15分06秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
迭代器学习之三:IEnumerable和IEnumerator的泛型结构
2019-04-30
迭代器学习之四:关于yield的深入了解
2019-04-30
ORA-02046: ORA-02046:分布式事务处理已经开始
2019-04-30
栈-堆-C#详解
2019-04-30
值类型-引用类型
2019-04-30
C# Random生成随机数字和字母
2019-04-30
c# 扩展方法奇思妙用基础篇四:Random 扩展
2019-04-30
创建和读写文件的一些简单方法
2019-04-30
XmlDocument操作xml文档
2019-04-30
.Net那点事儿系列:C#操作Xml:通过XmlDocument读写Xml文档
2019-04-30
使用XmlDocument创建XML文档及增加删除更新节点
2019-04-30
XML: 使用XmlDocument 与 XmlReader 类
2019-04-30
NET ListView选中行的定位显示
2019-04-30
C#设置窗体最大化 最小化 顶端显示
2019-04-30
C#窗体的最大化/最小化/还原/最小化到托盘/NotifyIcon的代码实现
2019-04-30
如何使程序最小化时出现在系统托盘中(C#)
2019-04-30
WinForm中实现最小化到系统托盘
2019-04-30
C# WinForm窗口最小化到系统托盘 右键操作菜单
2019-04-30