zoukankan      html  css  js  c++  java
  • [LeetCode] 93. Restore IP Addresses Java

    题目:

    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地址的点被消除了,根据剩下的数字字符串恢复出可能的ip地址。对于一个ip地址,分为四段,每段最多为三位,最少为一位,每段都在0-255之间.用一个整数start记录当前的段数,当第三段完之后,只需要判断第四段是否合法即可。判断字符串是否合法,如果第一个字符为'0',需要判断是否全为0;如果第一个字符不为'0',判断是否在0-255之间。

    代码:

    class Solution {
        //对于一个ip地址,分为四段,每段最多为三位,最少为一位,每段都在0-255之间.用一个整数start记录当前的段数,当第三段完之后,只需要判断第四段是否合法即可
        public List<String> restoreIpAddresses(String s) {
            List<String> list = new ArrayList<>();
            if(s.length()<4 || s.length() >12)
                return list;
    
            dfs(s,0,"",list);
            return list;
        }
    
        private void dfs(String s,int start,String res,List<String> list){
            if(start >3) return;
            if(start == 3 && isValid(s)){
                list.add(res + s);
                return;
            }
    
            for(int i=0;i<3 && i<s.length();i++){       //这里记得还要判断不能超出字符串范围
                String sub = s.substring(0,i+1);
                if(isValid(sub))
                    dfs(s.substring(i+1,s.length()),start+1,res + sub + ".",list);
            }
        }
    
        private boolean isValid(String s){          //判断字符串是否合法,如果第一个字符为'0',需要判断是否全为0;如果第一个字符不为'0',判断是否在0-255之间
            if(s.length()==0) return false;
            if(s.charAt(0)=='0')
                return s.equals("0");
            if(Integer.parseInt(s)<=255 && Integer.parseInt(s)>0)
                return true;
            else return false;
        }
    }
  • 相关阅读:
    net 面试题
    Entity Framework Core 三条引用三条命令
    软件开发模型设计
    Mysql局域网共享
    基于WinForm,百度ai接口开发的人脸识别
    WinForm创建
    SQLite Encryption(加密)新姿势
    WPF-MenuItem只显示最后一个Icon
    《深入浅出WPF》-刘铁猛学习笔记——XAML
    为什么你的问题群里没人回答?这就是原因!
  • 原文地址:https://www.cnblogs.com/271934Liao/p/7991268.html
Copyright © 2011-2022 走看看