力扣93 - 复原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 ,用以表示一个 IP 地址,返回所有可能的有效 IP 地址,这些地址可以通过在 s 中插入 ‘.’ 来形成。你 不能 重新排序或删除 s 中的任何数字。你可以按 任何 顺序返回答案。
- 示例
输入:s = “25525511135”
输出:[“255.255.11.135”,“255.255.111.35”]
输入:s = “0000”
输出:[“0.0.0.0”]
输入:s = “101023”
输出:[“1.0.10.23”,“1.0.102.3”,“10.1.0.23”,“10.10.2.3”,“101.0.2.3”]
思路分析
- 首先根据题目本身可以看到这是一道涉及字符串分割的问题,是属于回溯算法的一种,不太了解此算法的小伙伴可以先去了解一下,回溯算法它是DFS(深度优先搜索)的一种,与DFS不同的是,它不会一直向下遍历,会回溯寻找其他方案。就如此题一样,至于如何分割,我画了一张图,大家一看便知
- 怎么样,是不是很清晰,对此题有了一些基本的了解,接下去继续分割就形成了一个树形结构,这是数据结构中的一种,不懂的同学可以去了解一下。举个例子,对于第一个IP串,已经截取了2,接下去它可以再截取5,或者是55,但是552就不行了,因为其超出了255的范围界限,然后用回溯去一步步地判断每一个字段是否合法即可,且听我慢慢道来
力扣93 - 复原IP地址【回溯算法】相关推荐
- 142. Leetcode 93. 复原 IP 地址 (回溯算法-切割问题)
分析剪枝条件: 1.一开始,字符串的长度小于 4 或者大于 12 ,一定不能拼凑出合法的 ip 地址(这一点可以一般化到中间结点的判断中,以产生剪枝行为); 2.每一个结点可以选择截取的方法只有 3 ...
- 力扣93. 复原 IP 地址(JavaScript)
var restoreIpAddresses = function(s) { let arr=[]let p=[]const dd=function(index){//其中一个组合的长度大于4,错if ...
- java实现复原IP地址,回溯算法:复原IP地址
93.复原IP地址 题目地址:https://leetcode-cn.com/problems/restore-ip-addresses/ 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地 ...
- ip复原Java,力扣:复原IP地址
给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: ["255.255.11.135", ...
- LeetCode 93. 复原 IP 地址【字符串,回溯算法】
93. 复原 IP 地址 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔. 例如:"0.1.2.201" ...
- 93. 复原 IP 地址
93. 复原 IP 地址 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔. 例如:"0.1.2.201" ...
- leetcode:491. 递增子序列、17. 电话号码的字母组合、31. 分割回文串、93. 复原 IP 地址(JavaScript)
文章目录 491. 递增子序列 分析 去重 如何保证递增呢? 17. 电话号码的字母组合 思路: 单层递归逻辑 递归终止条件 完整代码 另一种写法 31. 分割回文串 思路:分析题目本题可分为两步 9 ...
- leetcode系列-93.复原 IP 地址
leetcode系列–第93题.复原 IP 地址 题目描述:有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔.例如:" ...
- 93. 复原 IP 地址(回溯算法)
给定一个只包含数字的字符串,用以表示一个 IP 地址,返回所有可能从 s 获得的 有效 IP 地址 .你可以按任何顺序返回答案. 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组 ...
最新文章
- Windows Server 2008常见的安全设置
- python线下培训-线下培训价值一万八的某达PYTHON培训视频
- 菜鸟教程python正则表达式_python 正则表达式详解
- 设计模式的Java 8 Lambda表达式-策略设计模式
- python 读写 json文件
- 企业如何确定需要什么样的产品经理
- 实用 —— PowerCLI (二)
- VMware vSphere 8 发布(含下载)
- Photoshop插件-黑白(一)-脚本开发-PS插件
- python 按比例缩小图片
- 论文笔记:CLOCs: Camera-LiDAR Object Candidates Fusion for 3D Object Detection
- Python exe Fatal error detected
- LoRaWAN节点和网关接入阿里LinkWAN
- 呵护流量尖峰时刻,我们是互联网的“守夜人”
- 从头开始学习->JVM(三):类加载器(上)
- mysql 查看版本的几种方法
- Python利用Opencv读取图片
- Html5 jquery视频播放插件Video.js
- 教你长高 男的没有1米8的 女的没1.65都要看啊
- 网络工程师必备测试网络软件,网络工程师都知道的几款网络故障诊断工具
热门文章
- Windows 2008 修改或取消密码安全策略
- Java使用GeoTools读取shapefile文件
- 为什么不可以使用哈曼顿距离_用Python计算8字谜游戏中的曼哈顿距离
- 记录一下用过的正则表达式
- 一款不错的Linux命令行下的FTP客户端软件
- 如何在线将XPS转换成Word文档?
- 人脸识别中的Gallery和Probe以及MegaFace的测试方式
- Android版本中蓝牙简介
- MySQL数据库与pom.xml中的connector依赖版本不匹配
- php和javascript的get和post方式 有人串口转wifi模块httpdclient网页交互通信成功源码2 wifi继电器小黄人软件ypnr
- 142. Leetcode 93. 复原 IP 地址 (回溯算法-切割问题)