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

力扣:93. 复原 IP 地址

回溯:

1.先定义一个接收的集合,之后再定义一个记录小数点的变量。之后编写回溯函数,终止条件为小数点的个数为3时,同时要判断最后一段的组合的值是否属于ip地址的范围。之后再用for循环来遍历ip地址的组合,先判断组合的ip地址是否符合,符合就用substring()将小数点加入到字符串中 同时小数点的个数加一,之后用嵌套的方式来寻找下一个ip地址,结束后在回溯操作。再写一个检查ip地址值是否符合的函数。

class Solution {//接收的集合List<String> li=new ArrayList<>();//记录小数点的个数int fuhao=0;public List<String> restoreIpAddresses(String s) {//调用回溯函数huisu(s,0,s.length());return li;}//回溯函数public void huisu(String s,int Index,int length){//终止条件if(fuhao==3){//判断最后一段ip值是否有效if(isIp(s,Index,s.length()-1)){li.add(s);}return ;}//for循环遍历ip地址的组合for(int i=Index;i<length;i++){//判断组合是否是属于0到255的范围if(isIp(s,Index,i)){//将小数点加入到字符串中s=s.substring(0,i+1)+"."+s.substring(i+1);//小数点的个数加一fuhao++;//嵌套调用huisu(s,i+2,s.length());//回溯操作来进行重新组合s=s.substring(0,i+1)+s.substring(i+2);fuhao--;}else{break;}}}//检查组合是否是符合0到255的函数public boolean isIp(String s,int Index,int is){if(Index>is){return false;}//前导不能为0if(s.charAt(Index)=='0'&&is-Index>0){return false;}//组合是否满足0到255int sum=0;for(int i=Index;i<=is;i++){sum=sum*10+(s.charAt(i)-'0');if(sum>255){return false;}}return true;}
}

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

相关文章:

  • 利用序列化和反序列化实现深拷贝
  • 【AHK】68键键盘键位布局优化/esc改退格键/回车键
  • 计算机体系架构初步入门
  • 常见的序列化数据结构方法及其优缺点汇总
  • 华清远见嵌入式学习——驱动开发——作业1
  • 小苯的IDE括号问题(CD) -----牛客小白月赛87(双链表)
  • Redis如何修改key名称
  • 浅谈redis之SDS
  • 数据结构知识点总结-线性表(1)-线性表的定义、基本操作、顺序表表示
  • Spring Boot 手写starter!!!
  • 移动端自动化常用的元素定位工具 介绍
  • 问题:Spark SQL 读不到 Flink 写入 Hudi 表的新数据,打开新 Session 才可见
  • 数学建模资料分享
  • 应用配置管理
  • This dependency was not found解决方法
  • 基于SpringBoot的停车场管理系统
  • SQL库操作
  • 物麒平台根据入耳出耳状态使能或禁止触摸按键实现方法
  • CAS5.3使用JPA实现动态注册服务
  • unity ui界面优化
  • mysql-MVCC
  • ​Sqli-labs靶场第9关详解[Sqli-labs-less-9]
  • 第3.5章:StarRocks数据导入——Broker Load
  • Linux之ACL权限chmod命令
  • HBuilderX的特点
  • CrossOver虚拟机软件2024有哪些功能?最新版本支持哪些游戏?
  • Android LinearLayout 如何让子元素靠下居中对齐 center bottom
  • 物体检测-系列教程16:YOLOV5 源码解析6(马赛克数据增强函数load_mosaic)
  • 星河做市基金会全球DAO社区启动,为数字货币市场注入新活力
  • QT Widget自定义菜单