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

For example:
Given "25525511135",

return ["255.255.11.135", "255.255.111.35"]. (Order does not matter)

题目是给一个string,划分合理的ip的地址并给出包含所有合理的ip地址的list,我们知道ip地址的组成是4个部分,合理的范围是0.0.0.0~255.255.255.255。

代码主要有两个函数:

  isValid——验证是否合理,如果开头是0则这个串必须是0,否则必须大于0小于255;

  dfs——使用深搜的方式,搜索所有可能的组合;

所以用DFS的方式,搜索所有可能的组合,每一次搜索至第四个部分的时候,如果也是valid的话,那么这是一个合理的IP,添加到结果列表里

注意一下生成IP的细节, 添加 . 什么的。

Python代码如下:

 class RestoreIPAddress:

     def isValid(self, src):
if src[0] == '':
return src == ''
return 255 >= int(src) > 0 def dfs(self, src, temp, res, count):
if count == 3 and self.isValid(src):
res.append(temp + src)
return
for i in range(1, min(4, len(src))):
sub = src[0:i]
if self.isValid(sub):
self.dfs(src[i:], temp + sub + '.', res, count + 1) def restoreIpAddresses(self, s):
if len(s) < 4 or len(s) > 12:
return []
res = []
self.dfs(s, "", res, 0)
# print(res)
return res p = RestoreIPAddress()
p.restoreIpAddresses("")

LeetCode——Restore IP Addresses的更多相关文章

  1. LeetCode: Restore IP Addresses 解题报告

    Restore IP Addresses My Submissions Question Solution Given a string containing only digits, restore ...

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

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

  3. [leetcode]Restore IP Addresses @ Python

    原题地址:https://oj.leetcode.com/problems/restore-ip-addresses/ 题意: Given a string containing only digit ...

  4. [LeetCode] Restore IP Addresses 回溯

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

  5. LeetCode Restore IP Addresses

    DFS class Solution { public: vector<string> restoreIpAddresses(string s) { return insertDot(s, ...

  6. leetcode 93. Restore IP Addresses(DFS, 模拟)

    题目链接 leetcode 93. Restore IP Addresses 题意 给定一段序列,判断可能组成ip数的所有可能集合 思路 可以采用模拟或者DFS的想法,把总的ip数分成四段,每段判断是 ...

  7. 【leetcode】Restore IP Addresses

    Restore IP Addresses Given a string containing only digits, restore it by returning all possible val ...

  8. 【LeetCode】93. Restore IP Addresses

    Restore IP Addresses Given a string containing only digits, restore it by returning all possible val ...

  9. LeetCode解题报告—— Reverse Linked List II & Restore IP Addresses & Unique Binary Search Trees II

    1. Reverse Linked List II Reverse a linked list from position m to n. Do it in-place and in one-pass ...

随机推荐

  1. Qt 学习之路:QSortFilterProxyModel

    从本章开始,我们将逐步了解有关自定义模型的相关内容.尽管前面我们曾经介绍过 Qt 提供的几个内置模型:QStringListModel和QFileSystemModel,但对于千变万化的需求而言,这些 ...

  2. 如何使用Valgrind memcheck工具进行C/C++的内存泄漏检测

      系统编程中一个重要的方面就是有效地处理与内存相关的问题.你的工作越接近系统,你就需要面对越多的内存问题.有时这些问题非常琐碎,而更多时候它会演变成一个调试内存问题的恶梦.所以,在实践中会用到很多工 ...

  3. Linux shell入门基础(五)

    五.bash运算及启动脚本 01.使用bash的命令历史 #history …… #set(显示所有的变量) | grep HIS HISTFILE=/root/.bash_history HISTF ...

  4. 查看Oracle数据库被锁住的表,删除锁表的进程

    锁表处理及查询 查看Oracle数据库被锁住的表,删除锁表的进程 1.查看被锁住的表 SELECT dob.object_name table_name,    lo.locked_mode, lo. ...

  5. git 的记住用户名和密码和一些常用

    git config --global core.autocrlf falsegit config --global color.ui truegit config --global credenti ...

  6. java 手动清理缓存的方法

    有时候会感觉代码如何也查不出问题,可是缓存就是清好几遍了 这个时候就试试手动清理缓存 到你的编译路径下面 E:\java-workspace\wem\work\org\apache\jsp 手动删除你 ...

  7. Animator Override Controllers 学习及性能测试

    本文由博主(YinaPan)原创,转载请注明出处:http://www.cnblogs.com/YinaPan/p/Unity_AnimatorOverrideContorller.html  The ...

  8. 你好,C++(31)我终于找到对象啦!6.1 从结构化设计到面向对象程序设计

    第6章 当C++爱上面向对象 很多第一次进入C++世界的人都会问:C++中的那两个加号到底是什么意思啊? C++是由C语言发展而来的,它比C语言多出的两个加号,实际上是C语言的自增操作符,表示C++语 ...

  9. 你好,C++(8)如何表达那些始终保持不变的数据量?3.2.2 常量

    3.2.2  常量 与变量可以用在程序中表达那些可能会发生变化的数据量相对应地,在C++中,我们用常量来表达那些始终保持不变的数据量.简单来讲,就是程序中直接使用的数值.字符.字符串以及const关键 ...

  10. C#制作ActiveX控件及部署升级(摘自网络)

    使用C#开发ActiveX控件 控件开发.制作CAB包.签名.部署 ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序 ...