news 2026/7/16 4:57:08

力扣刷题:复原IP地址

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣刷题:复原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 中的任何数字。你可以按 任何 顺序返回答案。

示例 1:

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

示例 2:

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

示例 3:

输入:s = “101023”
输出:[“1.0.10.23”,“1.0.102.3”,“10.1.0.23”,“10.10.2.3”,“101.0.2.3”]

解析:
这道题的思路就是回溯
每次尝试从当前位置截取 1~3 个字符作为一个段。
检查这个段是否合法:
数值在 0~255 之间
如果长度大于 1,不能以 “0” 开头
如果合法,加入当前路径,继续递归。
当找到 4 段并且用完了所有字符时,保存结果。

具体代码:

/** * @param {string} s * @return {string[]} */varrestoreIpAddresses=function(s){// res: 存储所有合法的 IP 地址结果// path: 存储当前正在构建的 IP 地址的四个段constres=[]letpath=[]// 从字符串的第一个字符开始回溯back(0)returnresfunctionback(i){// 获取当前已经分割的段数constlen=path.length// 剪枝:如果已经超过 4 段,直接返回(IP 地址只能是 4 段)if(len>4)return// 终止条件:已经有 4 段,并且用完了所有字符// 说明找到了一个合法的 IP 地址if(len===4&&i===s.length){// 将四个段用点连接起来,加入结果集res.push(path.join("."))return}// 从当前位置 i 开始,尝试截取不同长度的子串作为一段for(letj=i;j<s.length;j++){// 截取从 i 到 j 的子串作为当前段conststr=s.slice(i,j+1)// 剪枝条件1:段长度不能超过 3,数值不能超过 255// 注意:这里使用 break 而不是 continue,因为再往后截取只会更长或更大if(str.length>3||+str>255)break// 剪枝条件2:如果段长度大于 1,且以 '0' 开头,不合法(前导零)if(str.length>1&&str[0]==='0')break// 当前段合法,加入路径path.push(str)// 递归处理剩余部分,从 j+1 开始back(j+1)// 回溯:撤销选择,尝试其他长度的分割path.pop()}}};
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/15 1:47:14

vue3+springboot基于uniapp的二手渔具回收商城系统 钓鱼交友的微信小程序开发(编号:803442152)

文章目录 具体实现截图主要技术与实现手段关于我本系统开发思路java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 具体实现截图 同行可拿货,招校园代理 vue3springboot基于uniapp的二手渔具回收商城系统 钓鱼…

作者头像 李华
网站建设 2026/7/12 3:37:09

Linly-Talker在相声贯口练习中的气息控制

Linly-Talker在相声贯口练习中的气息控制 在一间安静的练功房里&#xff0c;一位年轻学徒正对着录音反复练习《报菜名》——“蒸羊羔、蒸熊掌、蒸鹿尾儿……”一口气念下来&#xff0c;稍有停顿便前功尽弃。这正是相声“贯口”的魅力所在&#xff1a;语速如飞、吐字如钉、气息…

作者头像 李华
网站建设 2026/7/14 21:00:08

Linly-Talker在风电场巡检中的安全规程重申

Linly-Talker在风电场巡检中的安全规程重申技术背景与行业挑战 在远离城市的山脊或海岸线上&#xff0c;成排的风力发电机缓缓旋转&#xff0c;构成现代清洁能源的重要图景。然而&#xff0c;在这片看似宁静的背后&#xff0c;是高风险、高强度的运维作业现实。风机塔筒高达百米…

作者头像 李华
网站建设 2026/7/12 3:00:01

设备频繁掉线怎么办,一文搞懂Open-AutoGLM连接优化的8个关键步骤

第一章&#xff1a;Open-AutoGLM设备连接管理概述在现代智能硬件系统中&#xff0c;Open-AutoGLM作为一款支持多模态交互的开源框架&#xff0c;其设备连接管理机制是保障稳定通信与高效数据交换的核心模块。该模块负责协调主机与终端设备之间的连接建立、状态监控、异常恢复及…

作者头像 李华
网站建设 2026/7/15 19:06:52

【稀缺资料】Open-AutoGLM接口调用延迟降低95%的完整技术路径

第一章&#xff1a;Open-AutoGLM接口调用效率提升的背景与意义在大模型应用快速发展的背景下&#xff0c;Open-AutoGLM作为支持自动化任务生成与执行的核心接口&#xff0c;其调用效率直接影响系统的响应速度与用户体验。随着业务场景复杂度上升&#xff0c;频繁的远程调用、高…

作者头像 李华
网站建设 2026/7/13 3:59:57

版本冲突频发?Open-AutoGLM智能合并策略让协作开发效率翻倍

第一章&#xff1a;版本冲突频发&#xff1f;Open-AutoGLM智能合并策略让协作开发效率翻倍在多开发者并行开发的现代软件项目中&#xff0c;Git版本冲突成为制约迭代速度的主要瓶颈。Open-AutoGLM通过引入基于语义理解的智能合并引擎&#xff0c;显著降低人工干预成本&#xff…

作者头像 李华