zoukankan      html  css  js  c++  java
  • 93. Restore IP Addresses java solutions

    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)

     1 public class Solution {
     2     public List<String> restoreIpAddresses(String s) {
     3         List<String> ans = new ArrayList<String>();
     4         if(s.length() < 4 || s.length() > 12)
     5             return ans;
     6         recursive(ans,0,s,"");
     7         return ans;
     8     }
     9     
    10     public void recursive(List<String> ans, int s, String str, String tmp){
    11         if(s == 3 && check(str)){// 其实取到第三层之后,判断剩下的是否合法,第四层就不用再递归了。
    12             ans.add(new String(tmp+str));
    13             return;
    14         }
    15         for(int i=0; i<3 && i<str.length()-1; i++){
    16             String substr = str.substring(0,i+1);
    17             if(check(substr)){
    18                 recursive(ans,s+1,str.substring(i+1,str.length()),tmp+substr+".");
    19             }
    20         }
    21     }
    22     
    23     public boolean check(String substr){
    24         if(substr.charAt(0) == '0')
    25             return "0".equals(substr);
    26         int num = Integer.parseInt(substr);
    27         if(num > 255 || num < 1) return false;
    28         return true;
    29     }
    30 }

    这一题做的很艰难,边界条件不好界定。

    几点注意的地方:

    1. 在验证字符串是否是数字的时候,要注意0的情况,001,010,03都是非法的。所以,如果第一位取出来是0,那么我们就判断字符串是否是"0",不是的情况都是非法的

    2. 取字符串的时候,注意位数不够的问题,不仅<3, 而且<s.length()-1

    3. 注意substring的范围

    4. 字符串转换成数字 Integer.parseInt(); 

    5. 别忘了IP 地址里面的 "."

  • 相关阅读:
    VS2005进行WAP开发中的控件排列问题
    WAP中图像列表的设计
    List分页存在的问题
    vs.net2005下的WAP开发之设备仿真器
    用户控件中RedirectToMobilePage的使用
    ASP.NET网站发布问题
    asp.net开发WAP时表单提交的问题及粗略的解决
    如何在objectlist上显示两个字段的连接??
    VS2008 快捷键大全
    [翻译]25招改善你的jQuery [2]
  • 原文地址:https://www.cnblogs.com/guoguolan/p/5627019.html
Copyright © 2011-2022 走看看