当前位置: 首页 > news >正文

力扣刷题:复原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()}}};
http://www.jsqmd.com/news/114441/

相关文章:

  • 2025年质量好的反弹器/明装反弹器厂家最新推荐排行榜 - 品牌宣传支持者
  • Linly-Talker在智能楼宇的访客登记
  • Linly-Talker在散文欣赏中的意境营造
  • 2025年电渗析设备哪家口碑好、电渗析厂家厂家排名 - myqiye
  • Open-AutoGLM工具集成进阶攻略(从入门到高阶的3个关键阶段)
  • 你真的会配置Open-AutoGLM吗?99%的人都忽略的3大安全漏洞
  • Linly-Talker在自由搏击中的组合拳编排
  • 云原生领域 Consul 服务网格的应用与实践
  • 英语考研小作文轮椅流(基于Fiona的英语美食)
  • 2025年口碑好的西安无人机蜂巢低温储能电池/西安-70℃~80℃低温电池厂家推荐及选择指南 - 品牌宣传支持者
  • Open-AutoGLM代码编译优化实战(从入门到精通的稀缺手册)
  • 2025叛逆孩子学校TOP5权威推荐:破解亲子困境助力成长 - 工业推荐榜
  • Linly-Talker在石油钻井平台的应急预案演练
  • Linly-Talker在风电场巡检中的安全规程重申
  • 2025年评价高的智能干冰清洗设备/高压干冰清洗设备厂家实力及用户口碑排行榜 - 品牌宣传支持者
  • Linly-Talker实战教程:如何用AI生成带表情的讲解视频
  • Linly-Talker在攀岩路线规划中的风险提示
  • 2025年评价高的玻璃钢管道厂家最新推荐权威榜 - 品牌宣传支持者
  • Open-AutoGLM功能模块化整合全解析(专家级工程实践曝光)
  • Java如何利用分段技术实现100万文件分片上传?
  • Linly-Talker在渔业捕捞作业中的可持续发展倡导
  • Linly-Talker在无人机航拍中的禁飞区提醒
  • 从代码提交到产品发布:Open-AutoGLM全流程协议合规检查点详解
  • 2025年嘉兴管道疏通联系方式汇总:全市专业服务商官方联系渠道与高效合作指引 - 品牌推荐
  • Open-AutoGLM模块解耦全攻略(效率优化的底层逻辑大公开)
  • Linly-Talker在农业大棚的种植技术指导
  • Linly-Talker在储能电站监控中的异常警报响应
  • 2025年广州搬家公司联系方式汇总:深耕本地市场的一站式服务商联系通道与专业搬迁指引 - 十大品牌推荐
  • Java如何结合国密加密实现分片上传安全存储方案?
  • 跨平台游戏引擎 Axmol-2.11.0 发布