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)

将给定字符串变为合法的IP地址(所有情况)。

需要注意的是:

1、如果0作为开头,那么只能是0。

2、不能超过255。

3、注意不要越界。

尽量运用数组,速度达到最快1ms。

public class Solution {

    List result = new ArrayList<String>();
char[] IP ; public List<String> restoreIpAddresses(String s) {
int len = s.length();
if( len < 4 || len > 12)
return result;
IP = s.toCharArray(); getReult(0,0,new char[len+3]); return result; } public void getReult(int num,int pos,char[] ans){ if( num != 3){
if ( pos-num < ans.length-3 && IP[pos-num] == '0'){
ans[pos] = '0';
ans[pos+1] = '.';
getReult(num+1,pos+2,ans);
return ;
}
for( int i = pos ; i < pos+2 && i<ans.length-3+num;i++){
ans[i] = IP[i-num];
ans[i+1] = '.';
getReult(num+1,i+2,ans);
}
if( ans.length-3+num-pos >= 3){
int tt = (IP[pos-num]-'0')*100+(IP[pos-num+1]-'0')*10+(IP[pos-num+1]-'0');
if( tt <= 255 ){
ans[pos+2] = IP[pos+2-num];
ans[pos+3] = '.';
getReult(num+1,pos+4,ans);
}
} }else{ int len = ans.length-pos;
if( len < 1 || len > 3)
return ;
if ( IP[pos-num] == '0' && len != 1)
return ;
else{
if( len == 3 ){
int tt = (IP[pos-num]-'0')*100+(IP[pos-num+1]-'0')*10+(IP[pos-num+2]-'0');
if( tt > 255 )
return ;
}
for( int i = pos; i<ans.length;i++){
ans[i] = IP[i-3];
}
result.add( new String ( String.valueOf(ans))); }
} } }

leetcode 93 Restore IP Addresses ----- java的更多相关文章

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

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

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

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

  3. LeetCode : 93. Restore IP Addresses

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABZ4AAAHUCAYAAAC6Zj2HAAAMFGlDQ1BJQ0MgUHJvZmlsZQAASImVlw

  4. 93.Restore IP Addresses(M)

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

  5. 【LeetCode】93. Restore IP Addresses

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

  6. 93. Restore IP Addresses

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

  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

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

  9. Java for LeetCode 093 Restore IP Addresses

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

随机推荐

  1. wp8.1 Study10:APP数据存储

    一.理论 1.App的各种数据在WP哪里的? 下图很好介绍了这个问题.有InstalltionFolder, knownFolder, SD Card... 2.一个App的数据存储概览 主要分两大部 ...

  2. SQL语句查询所耗时间与效能的语句

    1)SQL查询所耗时间语句 原理:记录当前时间1,执行SQL语句,记录当前时间2,显示时间2与时间1的差. 由于第一次执行的所耗时间为真实时间,之后会保存在缓存中,所以第二次之后的查询所耗时间都会比第 ...

  3. GPIO的8种工作模式

    1.浮空输入GPIO_IN_FLOATING ——浮空输入,可以做KEY识别,RX1 2.带上拉输入GPIO_IPU——IO内部上拉电阻输入 3.带下拉输入GPIO_IPD——IO内部下拉电阻输入 4 ...

  4. JVM-JDK命令行工具

    JDK命令行工具 当我们进入JDK的安装目录里面的/bin目录,会发现有很多小工具,有我们熟悉的也经常用的java,javac,也有很多我们不怎么用到很陌生的工具.下面看看哪些平时不怎么用到的工具吧. ...

  5. centos下安装node js

    #wget http://nodejs.org/dist/v0.10.24/node-v0.10.24.tar.gz #tar xf node-v0.10.24.tar.gz #cd node-v0. ...

  6. ZOJ 1654 - Place the Robots (二分图最大匹配)

    题意:在一个m*n的地图上,有空地,草和墙,其中空地和草能穿透攻击光线,而墙不能.每个机器人能够上下左右攻击,问在地图上最多能放多少个不互相攻击的机器人. 这个题和HDU 1045 -  Fire N ...

  7. Camel routes in Spring config file

    The normal spring bean definition configuration file, the xsi:schemaLocation only has two: beans and ...

  8. IOS 作业项目(4)步步完成 画图 程序(中)

    一,承接上文,继续本文  [UIButton buttonWithType:UIButtonTypeRoundedRect]; 如此声明的按钮才会有点击闪动的效果!如果直接frame方式声明就不会有. ...

  9. Python - 学习经验分享

    执行方式: 直接输入python进入命令行,进行单行输入执行,退出后不保存. python filename.py或./filename.py 直接执行脚本文件 脚本格式: #!/usr/bin/py ...

  10. XML文件的读取、序列化和反序列化操作

    public class XmlHelper { //从xml中获取MsgType public static string XMLSelect(string XML) { XmlDocument x ...