zoukankan      html  css  js  c++  java
  • Restore IP Addresses

    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)

    ref: http://www.cnblogs.com/feiling/p/3301869.html

    public static ArrayList<String> restoreIpAddresses(String s) {
            // Start typing your Java solution below
            // DO NOT write main() function
            ArrayList<String> result = new ArrayList<String>();
            if (s == null || s.length() == 0) {
                return result;
            }
            int depth = 0, start = 0;
            String ip = "";
            generate(s, start, depth, result, ip);
    
            return result;
        }
    
        private static void generate(String s, int start, int depth,
                ArrayList<String> result, String ip) {
            // max = 3 check it
            if ((s.length() - start) > (4 - depth) * 3) {
                return;
            }
            // min = 1 check it
            if (s.length() - start < 4 - depth) {
                return;
            }
            if (depth == 4) {
                ip = ip.substring(0, ip.length() - 1);
                if(!result.contains(ip))
                    result.add(ip);
                return;
            }
    
            int num = 0;
            for (int i = start; i < Math.min(start + 3, s.length()); i++) {
                num = num * 10 + (s.charAt(i) - '0');
                if (num <= 255) {
                    generate(s, i + 1, depth + 1, result, ip + num + ".");
                }
                if(num == 0){
                    break;
                }
            }
        }
  • 相关阅读:
    python读取二进制文件写入到txt
    python格式化输出
    字符编码
    python--随时记录
    python-web服务器
    openssh移植
    select、poll、epoll
    (总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解
    heartbeat与keepalived的区别
    salt 常用命令整理
  • 原文地址:https://www.cnblogs.com/RazerLu/p/3544620.html
Copyright © 2011-2022 走看看