栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

leetcode-剑指 Offer II 087. 复原 IP 【java】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

leetcode-剑指 Offer II 087. 复原 IP 【java】

剑指 Offer II 087. 复原 IP

给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能从 s 获得的 有效 IP 地址 。你可以按任何顺序返回答案。

有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。

例如:“0.1.2.201” 和 “192.168.1.1” 是 有效 IP 地址,但是 “0.011.255.245”、“192.168.1.312” 和 “192.168@1.1” 是 无效 IP 地址。

示例 1:

输入:s = “25525511135”
输出:[“255.255.11.135”,“255.255.111.35”]
示例 2:

输入:s = “0000”
输出:[“0.0.0.0”]
示例 3:

输入:s = “1111”
输出:[“1.1.1.1”]
示例 4:

输入:s = “010010”
输出:[“0.10.0.10”,“0.100.1.0”]
示例 5:

输入:s = “10203040”
输出:[“10.20.30.40”,“102.0.30.40”,“10.203.0.40”]

提示:

0 <= s.length <= 3000
s 仅由数字组成

代码:

class Solution {
    public List restoreIpAddresses(String s) {
        List result=new linkedList<>();
        helper (s,0,0,"","",result);

        return result;
    }

    private void helper (String s,int i,int segI,String seg,String ip,List result){
        if (i==s.length()&&segI==3&&isValidSeg(seg))
            result.add(ip+seg);
        else if (i0&&segI<3)
                helper(s,i+1,segI+1,""+ch,ip+seg+".",result);
        }
    }

    private boolean isValidSeg(String seg){
        if (Integer.valueOf(seg)<=255&&(seg.equals("0")||seg.charAt(0)!='0'))
            return true;
        else
            return false;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/434746.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号