恢复IP地址

给一个由数字组成的字符串。求出其可能恢复为的所有IP地址。

样例

给出字符串 "25525511135",所有可能的IP地址为:

[
"255.255.11.135",
"255.255.111.35"
]

(顺序无关紧要)

解题

深度优先遍历

注意:

1.中间IP位置不能以0开始,0.01.01.1非法,应该是0.0.101.1或者0.0.10.11

2.数不能大于255

public class Solution {
/**
* @param s the IP string
* @return All possible valid IP addresses
* 不能包括01 001这样的格式
*/
public ArrayList<String> restoreIpAddresses(String s) {
// Write your code here
ArrayList<String> list = new ArrayList<String>();
String IP="";
int start = 0;
int IPsize = 0;
dfs(list,IP,s,start,IPsize);
return list;
}
public void dfs(ArrayList<String> list,String IP,String s,int start,int IPsize){
if(start == s.length()||IPsize>=4)
return;
if(IPsize == 3){
String subIP = s.substring(start);
if(isStartZero(subIP))
return;
if(!isLegal(subIP))
return;
IP+="." + subIP;
if(!list.contains(IP))
list.add(IP);
return;
}else{
for(int i = start;i<s.length();i++){
int j = 1;
while(start+j<s.length() && j<=4){
String subIP = s.substring(start,start+j);
if(isStartZero(subIP))
break;
if(!isLegal(subIP))
break;
if(IPsize == 0){
IP+=subIP;
IPsize++;
dfs(list,IP,s,start+j,IPsize);
IP = "";
}else{
IP+="." + subIP;
IPsize++;
dfs(list,IP,s,start+j,IPsize);
IP = IP.substring(0,IP.length() - j-1);
} IPsize--;
j++;
} }
}
}
public boolean isLegal(String subIP){
Long numIP = Long.valueOf(subIP);
if(numIP< 0 || numIP>255)
return false;
return true;
}
public boolean isStartZero(String subIP){
if(subIP.substring(0,1).equals("0") && subIP.length() >=2)
return true;
return false;
}
}

lintcode:恢复IP地址的更多相关文章

  1. lintcode - 恢复ip地址

    class Solution { public: /* * @param s: the IP string * @return: All possible valid IP addresses */ ...

  2. lintcode-【中等】恢复IP地址

    题目 给一个由数字组成的字符串.求出其可能恢复为的所有IP地址.链接. 样例 给出字符串 "25525511135",所有可能的IP地址为: [ "255.255.11. ...

  3. 恢复所有情况的ip地址

    在终端下输入一串ip字符串如:19219219211,ip地址可能是19.219.219.211.192.19.219.211.192.192.19.211和192.192.192.11. 以下是本人 ...

  4. Linux网络管理1---(Linux配置IP地址,ifconfig、配置文件)

    1.Linux配置IP 地址 ifconfig命令临时配置IP 地址 ifconfig命令,最常用的功能是查看本机的网络的配置状态(当然也可以配置网络,不过是暂时性的),直接输入ifconfig命令就 ...

  5. 【linux】虚拟机安装centos后ping ip地址出现错误:Network is unreachable

    来源:https://my.oschina.net/stonezing/blog/515480 方案一: 进入/etc/sysconfig/network-scripts/ 查看这下面的文件 每个人的 ...

  6. IP地址更改小工具(bat命令)

    为了方便切换IP地址,特编制bat命令代码来实现,将以下代码复制到txt文本中,然后保存为bat文件,双击bat文件运行即可. 通过bat命令运行,自动修改IP地址,代码如下: @echo off c ...

  7. IP地址漂移的实现与原理

    当前备份软件比较流行,其中用到的关键技术是IP 地址漂移, 实际上IP地址漂移技术是利用共享的“虚拟”IP地址,当本地进行节点切换与路由切换,使另一端的发送和收方端没有感觉到本地节点地址有变化,保证了 ...

  8. 转:数据包经由路由转发时源、目的IP地址及MAC地址变化情况

    数据包经由路由转发时源.目的IP地址及MAC地址变化情况.  IP数据包经由路由转发的时候源ip,目的ip,源MAC,目的mac是否发生改变,如何改变?   A—–(B1-B2)—–(C1-C2)—— ...

  9. openstack私有云布署实践【19 通过python客户端 创建实例VM指定IP地址】

    还有一种创建方式 是使用py开发工具,调用openstackclient的方法进行创建实例 ,好处就是可随意指定我们要的虚拟机IP地址,需求的场景就是,某天我们需要主动分配一个比较熟知的IP用作某个服 ...

随机推荐

  1. Mac下显示\隐藏所有文件

    显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true隐藏Mac隐藏文件的命令:defaults write ...

  2. iOS Bluetooth Reconnect

    蓝牙的重连主要分为以下两种: 1.恢复一些已知的设备,已知的设备就是在此次操作之前你扫描到的或者已经连接过的设备.用retrievePeripheralsWithIdentifiers:函数去完成回复 ...

  3. cameralink---格式 概要清晰理解

    DS90CR288 和DS90CR286共同组成LVDS收发对, LVDS: 4对数据+1对时钟 TTL: 时钟线1:clk 并行总线共27根: 同步线2:一根场同步,一根行同步 空闲: 1 数据线2 ...

  4. 一样的Android,不一样的学习

    这几年,Android开始慢慢流行起来,很多项目也开始涉及这部分内容,所以学习Android也就变的很有意义了. 学什么 学习Android应该学什么,很多人有不同的见解.一般程序员可能只是学习And ...

  5. win7无线网卡的灯突然不亮了的解决办法

    win7无线网卡的灯突然不亮了,百度了一下,按如下的方法解决了:  WIN7中:右键单击“计算机”,选择“管理”进入“计算机管理”,选择“服务和运用”下的“服务”,然后双击“WLAN AutoConf ...

  6. hadoop HA 之 QJM

    前言 本文主要通过对hadoop2.2.0集群配置的过程加以梳理,所有的步骤都是通过自己实际测试.文档的结构也是根据自己的实际情况而定,同时也会加入自己在实际过程遇到的问题.搭建环境过程不重要,重要点 ...

  7. Daily Scrum2

    今天我们小组开会内容分为以下部分: part 1: 之前的失败教训: part 2: 针对Anti-spam and anti-abuse module模块的任务分工: part 3: 之后小组成员必 ...

  8. HashCode作用

    作用: 1.HashCode的存在主要是为了查找的快捷性,HashCode是用来在散列存储结构中确定镀锡的存储地址的 2.如果两个对象的equals相等,那么HashCode一定相等,反之不行 3.如 ...

  9. CSS3选择器学习笔记

    CSS选择器总结: 一.基本选择器 1.通配选择器:[  *  ]        选择文档中所以HTML元素. *{margin: 0;padding: 0;} /*选择页面中的所有元素并设置marg ...

  10. 我是IT小小鸟

    我是IT小小鸟读后感 世界上没有一蹴而就的成功者,只有头悬梁锥刺股的奋斗者.蜉蝣向往大鹏的辉煌,却不曾知大鹏以往的汗水.蜉蝣之所以为蜉蝣,是因为它犹如井底之蛙,目光短浅,之盲目地羡慕成功者,而大鹏之所 ...