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

复原IP地址

分割字符串的姐妹题

题目:93. 复原 IP 地址 - 力扣(LeetCode)

题解:代码随想录

代码:

class Solution {List<String> res=new ArrayList<>();public List<String> restoreIpAddresses(String s) {if(s.length()>12) return res;backtracking(s,0,0);return res;}public void backtracking(String s,int startIndex,int pointNum){if(pointNum==3){if(check(s,startIndex,s.length()-1)) res.add(s);return;}for(int i=startIndex;i<s.length();i++){if(check(s,startIndex,i)){s=s.substring(0,i+1)+'.'+s.substring(i+1);pointNum++;backtracking(s,i+2,pointNum);pointNum--;s=s.substring(0,i+1)+s.substring(i+2);}else{break;}}}public boolean check(String s,int start,int end){if(start>end) return false;if(s.charAt(start)=='0'&&start!=end) return false;int num=0;for(int i=start;i<=end;i++){if(s.charAt(i)<'0'||s.charAt(i)>'9'){return false;}num=num*10+(s.charAt(i)-'0');if(num>255) return false;}return true;}
}

看题解写的,不过是理解了,他与分割字符串的区别就是他多了几个条件

1、分为四段,意味着终止条件变了

2、每一段的一些限制条件,意味着每次循环之前需要进行判断(剪枝)

http://www.lryc.cn/news/474424.html

相关文章:

  • Effective C++ 学习笔记二
  • 以「JIMUMETA元宇宙体验馆」为例,探讨有哪些元宇宙场景?
  • RHCE的练习(8)
  • yocto是如何收集recipes,如何加入现有的bb文件
  • [运维] 服务器本地网络可用性检查脚本
  • MYSQL-显示信息关于服务器插件语法(二十五)
  • 【线下培训】龙信受邀参加开封市公安局举办的电子数据取证培训班
  • 软件测试工程师面试整理 —— 编程与自动化!
  • 【鸿蒙新闻】10月29日警用鸿蒙开发者大会在北京胜利召开,开启智慧应用新时代!
  • java.io.IOException: Too many open files
  • ElementUI el-form表单多层数组的校验
  • 常见的向量范数、矩阵范数和对偶范数-对偶范数详细证明过程
  • Android 滴滴面经
  • angular登录按钮输入框监听
  • 硅谷甄选(10)用户管理
  • Unity XR Interaction Toolkit 开发教程(2):导入 SDK【3.0 以上版本】
  • element-plus校验单个form对象合法性
  • Linux常见命令合集
  • __init__.py __all__和 __name__的作用及其用法
  • js操作数组的方法 / js操作字符串的方法
  • Docker 部署RocketMQ
  • Linux(Cent OS)环境离线安装mkfontscale mkfontdir命令 解决java项目在linux系统下无法获取中文字体问题
  • 计算堆栈中的剩余数字
  • 笔记:mysql升级 5.6至5.7
  • 前端的全栈Deno篇(五):与前端保持一致的模块化方案,摆脱ERR_REQUIRE_ESM和mjs、cjs等模块混乱带来的心智负担
  • 与外部公司做数据交互时,需要注意哪些事情?
  • 基于hive分析Flask为后端框架echarts为前端框架的招聘网站可视化大屏项目
  • Ansible 部署应用
  • 使用Docker Swarm进行集群管理
  • 基于树莓派的安保巡逻机器人--(一、快速人脸录入与精准人脸识别)