• LeetCode——复原IP地址


    Q:给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。
    有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 '.' 分隔。

    示例:
    输入: "25525511135"
    输出: ["255.255.11.135", "255.255.111.35"]

    A:
    回溯:

        private List<String> res;
    
        public List<String> restoreIpAddresses(String s) {
            res = new LinkedList<>();
            if (s.length() < 4)
                return res;
            List<String> list = new LinkedList<>();
            back(s, 0, list);
            return res;
        }
    
        private void back(String s, int start, List<String> list) {
            if (list.size() == 4) {
                if (start == s.length()) {
                    res.add(String.join(".", list));//用join更方便
                }
                return;
            }
            for (int i = 1; i < 4; i++) {//子串长度
                if (start + i > s.length())
                    break;
                String sub = s.substring(start, start + i);
                if (sub.length() > 1 && sub.charAt(0) == '0')//避免有“000”,“010”等情况
                    continue;
                int curr = Integer.parseInt(sub);
                if (curr <= 255) {
                    list.add(sub);
                    back(s, start + i, list);
                    list.remove(list.size() - 1);
                }
            }
        }
    
  • 相关阅读:
    第四章:初识CSS3
    第三章:表单
    第二章:列表、表格与媒体元素
    人机猜拳
    类的无参方法
    javadoc
    类与对象
    vuex笔记
    vi 编辑器常用快捷键
    知识点笔记(二维数组排序、统计数组重复个数、)
  • 原文地址:https://www.cnblogs.com/xym4869/p/12843461.html
Copyright © 2020-2023  润新知