093 Restore IP Addresses 复原IP地址

给定一个只包含数字的字符串,复原它并返回所有可能的IP地址格式。
例如:
给定 "25525511135",
返回 ["255.255.11.135", "255.255.111.35"]. (我们可以不考虑数组内元素的顺序)
详见:https://leetcode.com/problems/restore-ip-addresses/description/

Java实现:

class Solution {
    public List<String> restoreIpAddresses(String s) {  
        List<String> res = new ArrayList<String>();  
        if (s.length()<4||s.length()>12){
            return res;
        }
        String item = new String();
        helper(s, 0, item, res);  
        return res;  
    }  
      
    private void helper(String s, int start, String item, List<String> res){  
        if (start == 3 && isValid(s)) {  
            res.add(item + s);  
            return;  
        }  
        for(int i=0; i<3 && i<s.length()-1; ++i){  
            String substr = s.substring(0,i+1);  
            if (isValid(substr)){
                helper(s.substring(i+1), start+1, item + substr + '.', res); 
            } 
        }  
    }  
      
    private boolean isValid(String s){  
        if (s.charAt(0)=='0'){
            return s.equals("0"); 
        }   
        int num = Integer.parseInt(s);
        if(num > 0 && num <= 255){
            return true;
        }else{
            return false;
        }
    }
}

参考:https://www.cnblogs.com/springfor/p/3886409.html 

posted on 2018-04-04 14:51  lina2014  阅读(167)  评论(0编辑  收藏  举报

导航