Leetcode 93. Restore IP Addresses IP地址恢复 解题报告

leetcode93. 复原 IP 地址思路+详解) 一:目 二:上码 class Solution { /** 思路: 1.跟分割字符串差不多,但是我们需要记录添加的'.'的个数 当其个数等于3的时候 我们就已经切割成4段了。 2.判断字符是否合法 1>:以0开头的数字不合法 2>:遇见非数字字符不合法 3>:大于255不合法 */ private L 阅读详情

1 解题思想

这道题就是说,有一个IP地址“ABC.EFG.HIJ.KML”的形式,把他的点去了(0则不显示),得到一个类似于ABCDEFGHI的形式,问说这个ABCDEFGHI实际上可以解析成几种IP地址的格式。

这道题其实就是回溯了,IP地址的判断规则是:
{
每一段都必须有数字,数字在0~255之间
一共四段数字
}

按照这个规则去检索和判断就可以了

2 原题

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)

3 AC解

public class Solution {
    List<String> result;
    char[] digits;
    /**
     * 回溯,为了加快速度可以提前计算下是否可行
     * */
    public void find(int part,int value,String tmp,int index){
        if(part >3 || index>=digits.length){
            if(part ==  3 && index==digits.length){
                result.add(tmp);
            }
            return ;
        }
        if(value*10+digits[index]<=255  && value!=0){
            find(part,value*10+digits[index],tmp+(int)digits[index],index+1);
        }
        find(part+1,digits[index],tmp+"."+(int)digits[index],index+1);

    }
    public List<String> restoreIpAddresses(String s) {
        result=new ArrayList<String>();
        if(s.length()<1)
            return result;
        digits=s.toCharArray();
        for(int i=0;i<s.length();i++)
            digits[i]-='0';
        find(0,digits[0],""+(int)(digits[0]),1);
        return result;
    }
}
LeetCode93:复原IP地址——Python递归与迭代解法 1. LeetCode93:复原IP地址 给定一个只包含数字的字符串,复原它并返回所有可能的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” 阅读详情

相关推荐

leetCode 93.复原 IP 地址 + 回溯算法 + 图解 + 笔记

目要求:给我们个字符串,切割成一个合法的IP地址IPv4形式),用以表示一个 IP 地址,返回所有可能的。正好由四个整数(每个整数位于。之间组成,且不能含有前导。给定一个只包含数字的字符串。,这些地址可以通过在。2.确定递归终止条件。

呵呵哒!的博客 1939

leetcode93. 复原 IP 地址 (DFS,递归与回溯)

有效 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 地址。 给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能的有效 IP 地址,这些地址可以通过在 s 中插入'.' 来形成。你不能重新排序或删除 s 中的任何数.

ajdhfla的博客 1947

leetcode——第93——复原IP地址

目: 给定一个只包含数字的字符串,用以表示一个 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 地址。 来源:力扣(LeetCode) 链接:h

linping_的博客 855

LeetCode93: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”]. (O

2683

LeetCode 93. Restore IP Addresses恢复IP地址

网址:https://leetcode.com/problems/restore-ip-addresses/ Given a string containing only digits, restore it by returning all possible valid IP address combinations. For example: Given "2552551

James Pan 1307

[leetcode] 93. Restore IP Addresses 解题报告

目链接: https://leetcode.com/problems/restore-ip-addresses/ Given a string containing only digits, restore it by returning all possible valid IP address combinations. For example: Given "255255

小榕流光的专栏 1795

leetcode---93. Restore IP Addresses C++

93. Restore IP Addresses dfs,回溯+剪枝。。。就我觉得中等做到后面,完成一道花的时间越来越长吗?下面说下思路 用left和right变量控制ip地址每段的范围,其中: left作为每段起始点,且在每次函数调用中向后递进,即dfs(ans, s, depth + 1, right + 1, temp + ts + ".");; righr作为每段终点,同时也是循...

bbkgl的博客 513

LeetCode93Restore IP Addresses

Restore IP Addresses 路径搜索问IP地址每一小段的范围是0~255,对于输入的字串来说,考虑长度分别为1,2,3这三种情况.

上善若水 1225

Leetcode93. Restore IP Addresses

的整数,其实也就是枚举从这个位置出发要分割原字符串多少个字符。只要满足条件,就进入下一层枚举,直到出发的位置已经到了字符串末尾(也就是到了递归树的叶子节点),就开始判断,如果已经切割出了四个数字,就说明当前的切割合法,加入res;将一个只含数字的字符串转化为合法的IP地址。合法的IP地址的格式是,由小数点"."分隔开的四个大于等于。每次从某个位置出发,开始枚举当前新加入的那个大于等于。层,每层三个叉,所以整棵树的节点个数有个常数的上界),空间。(实际上时间复杂度是常数量级的,因为递归树最多。

数学、算法爱好者的博客 212

leetcode】【medium】93. Restore IP Addresses​​​​​​​

93. Restore IP Addresses Given a string containing only digits, restore it by returning all possible valid IP address combinations. Example: Input: "25525511135" Output: ["255.255.11.135", "255.25...

lemonade13的博客 128

【一天一道LeetCode】#93. Restore IP Addresses

一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder‘s Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)目 Given a string containing only digits, restore it by returning all possible valid IP address combi

ZeeCoder 1784

Leetcode 93. Restore IP Addresses (Medium) (cpp)

Leetcode 93. Restore IP Addresses (Medium) (cpp)

还是需要多学习!闷声大发财,这是坠吼的! 614

LeetCode 93. Restore IP Addresses【DFS,回溯】中等

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分目有锁,本系列将至少持续到刷完所有无锁之日为止;由于LeetCode还在不断地创建新,本系列的终止日期可能是永远。在这一系列刷文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现解,涉及到通用解法时更将归纳总结出相应的算法模板。。

memcpy0的博客 671

[LeetCode]93.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 no

SmartSi 2462

leetcode || 93Restore IP Addresses

problem: 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

hustyangju的足迹 763

LeetCode93. Restore IP Addresses(C++)

Given a string containing only digits, restore it by returning all possible valid IP address combinations. Example: Input: "25525511135" Output: ["255.255.11.135", "255.255.111.35"] 解题思路:回溯剪枝,从目本...

qq_41562704的博客 472

LeetCode-93. Restore IP Addresses (JAVA)(重新组合IP

LeetCode-93. Restore IP Addresses (JAVA)(重新组合IP

mine_song的博客 2291

LeetCode93. Restore IP Addresses

Given a string containing only digits, restore it by returning all possible valid IP address combinations. Example: Input: "25525511135" Output: ["255.255.11.135", "255.255.111.35"] 难度:中等 意解...

Dyman_的博客 289
上一篇: Java 序列化与反序列化 学习手札
下一篇: Leetcode 94. Binary Tree Inorder Traversal 二叉树中序遍历 解题报告
学术状态抽奖器
博客等级 码龄14年 249粉丝 270原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值