[抄题]:

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

Example:

Input: "25525511135"
Output: ["255.255.11.135", "255.255.111.35"]

[暴力解法]:

时间分析:

空间分析:

[优化后]:

时间分析:

空间分析:

[奇葩输出条件]:

[奇葩corner case]:

变量多的时候就一个个看:有单一变量的范围限制,也有多重变量的范围限制。比如新加单词后过长:pos + i > s.length()

[思维问题]:

以为要用backtracing,不知道那样的1到3位怎么加。其实加不了的话就写一般的dfs就行了。

[英文数据结构或算法,为什么不用别的数据结构或算法]:

[一句话思路]:

[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

[画图]:

[一刷]:

  1. .substring方法是小写
  2. 需要用到dfs的思想:i从1到3中的一个进去,dfs 还是会for 1到3

[二刷]:

[三刷]:

[四刷]:

[五刷]:

[五分钟肉眼debug的结果]:

[总结]:

需要用到dfs的思想:i从1到3中的一个进去,dfs 还是会for 1到3

[复杂度]:Time complexity: O(n) Space complexity: O(n)

[算法思想:迭代/递归/分治/贪心]:

[关键模板化代码]:

[其他解法]:

[Follow Up]:

[LC给出的题目变变变]:

[代码风格] :

[是否头一次写此类driver funcion的代码] :

[潜台词] :

class Solution {
public List<String> restoreIpAddresses(String s) {
//initialization
List<String> result = new ArrayList<String>(); //corner case
if (s == null || s.length() > 12) return result; //generateIpAddresses
generateIpAddresses(s, 0, 0, "", result); //return
return result;
} public void generateIpAddresses(String s, int sec, int pos, String curIP, List<String> result) {
//exit case
if (sec > 4) return ; //add to result if qualified and then return
if (sec == 4 && pos == s.length()) {
result.add(curIP);
return ;
} //add for length from 1 to 3
for (int i = 1; i <= 3; i++) {
//necessary exit
if (pos + i > s.length()) return ;
String section = s.substring(pos, pos + i);
//corner case, break
if ((section.length() > 1 && section.charAt(0) == '0') || Integer.valueOf(section) >= 256) break;
//add section to curIP
generateIpAddresses(s, sec + 1, pos + i, sec == 0 ? section : curIP + "." + section, result);
}
}
}

93. Restore IP Addresses产生所有可能的ip地址的更多相关文章

  1. 292C Beautiful IP Addresses

    传送门 题目 The problem uses a simplified TCP/IP address model, please read the statement carefully. An I ...

  2. xtu summer individual-4 A - Beautiful IP Addresses

    Beautiful IP Addresses Time Limit: 2000ms Memory Limit: 262144KB This problem will be judged on Code ...

  3. 93.Restore IP Addresses(M)

    93.Restore IP Addresses Medium 617237FavoriteShare Given a string containing only digits, restore it ...

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

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

  5. 93. Restore IP Addresses

    题目: Given a string containing only digits, restore it by returning all possible valid IP address com ...

  6. 【LeetCode】93. Restore IP Addresses

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

  7. LeetCode(93) Restore IP Addresses

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

  8. leetcode 93 Restore IP Addresses ----- java

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

  9. 【一天一道LeetCode】#93. Restore IP Addresses

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...

随机推荐

  1. 十九、springcloud(五)配置中心本地示例和refresh

    1.创建spring-cloud-houge-config子项目,测试需要的项目入下 2.添加依赖 <dependency> <groupId>org.springframew ...

  2. docker-compose 安装redis sentinel,共享主机网络模式

    采坑记录: docker sentinel模式安装完后因为是使用bridge模式,所以只有docker中运行的程序才能访问.刚开始尝试使用端口映射,返现sentinel返回的地址依然是docker的内 ...

  3. sql server 作业收缩数据库

    USE[master] GO ALTER DATABASE PayFlow2 SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE PayFlow2 S ...

  4. ubuntu彻底卸载opencv

    说正事之前,先啰嗦两句背景,算是拿个小本本记下了. 我本打算下载opencv2.4.在github上找到源码,在Branch处选择切换到2.4,然后复制URL,在terminal里面使用git clo ...

  5. 廖雪峰Java6 IO编程-2input和output-7序列化

    1.序列化 序列化是指把一个Java对象变成二进制内容byte[] 序列化后可以把byte[]保存到文件中 序列化后可以把byte[]通过网络传输 一个Java对象要能序列化,必须实现Serializ ...

  6. [UE4]Image

    一.Image.Appearance.Brush.Tiling:平铺方式 1.No Tile:不平铺,拉伸会变形 2.Horizontal:横向平铺.纵向拉伸会变形 3.Vertical:纵向平铺.横 ...

  7. MySQL 之 MHA + ProxySQL + keepalived 实现读写分离,高可用(一)

    准备服务器: docker network create --subnet=192.168.0.0/16 staticnetdocker run -d --privileged -v `pwd`/my ...

  8. ADB server didn't ACK failed to start daemon 5037

    错误信息: C:\Users\lizy>adb devices adb devicesadb server is out of date.  killing... ADB server didn ...

  9. Kafka介绍与消息队列

    消息队列的好处: 消息队列(Message Queue) 消息: 网络中的两台计算机或者两个通讯设备之间传递的数据.例如说:文本.音乐.视频等内容. 队列:一种特殊的线性表(数据元素首尾相接),特殊之 ...

  10. day31网络编程

    网络编程1. 目标:编写一个C/S架构的软件    C/S: Client(用户端)--------基于网络----------Server(服务端)    B/S: Browser-------基于 ...