from typing import List
# 这道题不是很难,但是限制条件有很多。
# 用递归的方法可以很容易的想到。只需要四层递归就好了。
# 每次进行加上限制条件。过滤每一层就好了。、
class Solution:
def restoreIpAddresses(self, s: str) -> List[str]:
self.IP_lists = []
self.dfs(s, "", 0)
return self.IP_lists
# 定义递归函数,参数为字符串,IP字符串,还有递归层数
def dfs(self, s, ip_str, depth):
# 前三层。
if depth < 3:
# 最多可以取三个字符
for index in range(1, 4):
# 写限制条件,根据IP地址的规范
if s != "" and 0 <= int(s[:index]) <= 255:
if int(s[:index]) == 0 and len(s[:index]) != 1:
continue
elif int(s[:index]) != 0 and s[0] =="0":
continue
# ip_str = ip_str + s[:index] + '.'
else:
# 再次进行递归
self.dfs(s[index:], ip_str + s[:index] + '.', depth + 1)
else:
# 当来到第四层,剩下的s就是最后一数字
# 判断最后一个数字是否符合条件。
if s != "" and 0 <= int(s) <= 255:
if int(s) == 0 and len(s) != 1:
pass
elif int(s) != 0 and s[0] == "0":
pass
else:
ip_str = ip_str + s
self.IP_lists.append(ip_str)
A = Solution()
print(A.restoreIpAddresses("25525511135"))
print(A.restoreIpAddresses("2552"))
# print(A.restoreIpAddresses("000"))
print(A.restoreIpAddresses("010010"))

93复原IP地址。的更多相关文章

  1. Java实现 LeetCode 93 复原IP地址

    93. 复原IP地址 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: ["255.255.11. ...

  2. leetcode刷题-93复原IP地址

    题目 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 '.' 分隔. 示例: 输入: &q ...

  3. leetcode 93 复原IP地址

    IP地址,分成四段,每段是0-255,按照每段的长度分别为1,2,3下一段长度分别1,2,3再下一段......进行递归遍历,能满足条件的假如res中.比较难想到的就是假如有一段是三位的010是不符合 ...

  4. 93. 复原 IP 地址

    做题思路or感想 这种字符串切割的问题都可以用回溯法来解决 递归三部曲: 递归参数 因为要切割字符串,所以要用一个startIndex来控制子串的开头位置,即是会切割出一个范围是[startIndex ...

  5. LeetCode 93. 复原IP地址(Restore IP Addresses)

    题目描述 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: ["255.255.11.135&qu ...

  6. 93. 复原IP地址

    题目描述: 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: ["255.255.11.135&q ...

  7. LeetCode:复原IP地址【93】

    LeetCode:复原IP地址[93] 题目描述 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: [&qu ...

  8. [LeetCode] Restore IP Addresses 复原IP地址

    Given a string containing only digits, restore it by returning all possible valid IP address combina ...

  9. LeetCode(93): 复原IP地址

    Medium! 题目描述: 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: ["255.255. ...

随机推荐

  1. The solution for apt-get update Err 404

    最近在ubuntu 12.10上执行sudo apt-get update 命令后出现了如下错误: Ign http://extras.ubuntu.com natty/main Translatio ...

  2. 有效提高java编程安全性的12条黄金法则

    安全性是软件开发中最复杂,最广泛和最重要的考量之一.Java是具有许多内置安全性功能的开发平台,java在长期的发展过程中,已经经过了很多高强度的安全测试,并经常更新安全漏洞.并且Java生态系统还包 ...

  3. Ethical Hacking - NETWORK PENETRATION TESTING(24)

    Detecting suspicious activities using Wireshark You can use make the MAC address of the router to st ...

  4. P1330 封锁阳光大学(洛谷)

    题目描述 曹是一只爱刷街的老曹,暑假期间,他每天都欢快地在阳光大学的校园里刷街.河蟹看到欢快的曹,感到不爽.河蟹决定封锁阳光大学,不让曹刷街. 阳光大学的校园是一张由n个点构成的无向图,n个点由m条道 ...

  5. 使用Java带你打造一款简单的外卖系统

    [一.项目背景] 随着互联网时代的快速发展,便捷人民的生活,提高生活质量,外卖系统应运而生. 人们也喜欢享受着"足不出户,美食到家"的待遇,促使网上订餐行业快速发展. [二.项目目 ...

  6. Mysql报Too many connections,不要乱用ulimit了,看看如何正确修改进程的最大文件数

    背景 今天在学习mysql时,看到一个案例,大体来说,就是客户端报Too many connections.但是,客户端的连接池,限制为了200,两个客户端java进程,那也才400,然后mysql配 ...

  7. 在ShareX里添加流浪图床

    这里以咱流浪图床为例哈:-D 上传目标类型:图像.文件 请求方法:POST 请求URL:https://p.sda1.dev/api/v1/upload_external_noform URL参数:名 ...

  8. Redis的字符串底层是啥?为了速度和安全做了啥?

    面试场景 面试官:Redis有哪些数据类型? 我:String,List,set,zset,hash 面试官:没了? 我:哦哦哦,还有HyperLogLog,bitMap,GeoHash,BloomF ...

  9. swfupload控件文件上传大小限制设置

    swfupload控件,是我在开发过程中用到的上传文件的控件,非常实用和方便.但最近碰到一些问题,解决之后进行一下整理. 因为用户上传文件的大小限制增加,导致原本上传控件时,文件的大小需要进行调整和限 ...

  10. JAVA集合二:HashMap和Hashtable

    参考链接: HOW2J.CN HashMap HashMap实现了JAVA的Map接口,类似于C++的STL框架的Map,是存储键值对的数据结构.键(key)是唯一的,但值(value)可以重复,如果 ...