Leetcode 93 题 复原IP地址

题目来源:https://leetcode-cn.com/problems/restore-ip-addresses/
个人公众号:小猿君的算法笔记

题目描述

给定一个只包含数字的字符串,复原它并返回所有可能的 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 地址。

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

思路分析

「分析」
这道题要求我们把一个字符串分割为四个片段,我们可以分段分情况进行考虑。

对于s = “25525511135”,第一个片段一定在前三位内进行选择,即第一个片段可以是2、25或255。

  • 如果第一个片段选2,剩余长度为10,但后面三个片段最大长度为9,不满足条件,不考虑该情况。
  • 如果第一个片段选25,剩余长度为9,剩余位数满足条件。接下来可以对第二个片段进行选取,第二个片段也分三种情况,可以选择5、52或525,同时需要分别对这些情况进行判断。
  • 如果第一个片段选255,剩余长度为8,剩余位数满足条件。第二个片段可以选2、25、255。每种情况的下属情况也需要依次进行判断。

当我们选取了4个片段,同时没有剩余字符串时,我们就找到了所需要的IP地址。

通过以上分析,我们知道,这道题可以通过回溯剪枝进行解决。最终满足条件的结果将被保留,如果存在不满足条件了路径,可以直接跳过,不进行后续操作,下图中用红色字体表示匹配,分别为"255.255.11.135"和"255.255.111.35"
在这里插入图片描述
「约束条件」

  • 一个片段的长度为1~3。
  • 每个片段的取值范围为0~255。
  • 片段可以是0,但不能是类似0x,0xx这种的字符串。

代码描述
class Solution {
   
    List<String> list = 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LeetCode是一个著名的在线编程库,可以帮助计算机程序员提升编程能力。LeetCode目涵盖了算法、数据结构、字符串、数组、链表等多个方面的知识,对于求职面试以及算法竞赛准备非常有帮助。 LeetCode上的编程目分为简单、中等和困难三个难度级别。每个目都有详细的目描述、输入输出示例以及参考答案等内容。在解决每个问时,我们需要仔细阅读目,并根据目要求提供正确的解答。 通常,我们需要使用编程语言如Python、C++等来实现解思路。在编码之前,我们需要先分析问,并找到合适的算法或数据结构来解决问。一般来说,我们可以使用递归、迭代、动态规划等方法来解决常见的编程问。 在LeetCode上,我们可以提交解答,并测试解答是否通过了所有的测试用例。如果通过了所有的测试用例,我们就可以得到目的AC(Accepted)结果,并获得该目的通过证书。如果没有通过所有的测试用例,我们可以检查自己的解答,查找解答中的错误或者不完善之处,并进行修改和优化。 总之,LeetCode编程是一个优秀的学习和练习编程的平台。通过解答LeetCode上的编程目,我们可以提升自己的编程能力,并且培养解决问的思维方式。无论是求职面试还是算法竞赛,LeetCode编程都是非常有帮助的资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值