有效 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"]

详细题解传送门

由于我们需要找出所有可能复原出的 IP 地址,因此可以考虑使用回溯的方法,对所有可能的字符串分隔方式进行搜索,并筛选出满足要求的作为答案。

代码:

package five;import java.util.ArrayList;
import java.util.List;public class a2 {public static List<String> sea(String s){List<String> list=new ArrayList<>();StringBuffer sb=new StringBuffer();backdrop(0,list,sb,s);return list;}public static void backdrop(int index,List<String> list,StringBuffer sb,String s){if (index==4||s.length()==0){if (index==4&&s.length()==0){list.add(sb.toString());}return;}for (int i=0;i<s.length()&&i<=2;i++){if (i!=0&&s.charAt(0)=='0') break;String str=s.substring(0,i+1);if (Integer.parseInt(str)<=255){if (sb.length()!=0) str='.'+str;sb.append(str);backdrop(index+1,list,sb,s.substring(i+1));sb.delete(sb.length()-str.length(),sb.length());}}}
}

复原 IP 地址(回溯)相关推荐

  1. java实现复原IP地址,回溯算法:复原IP地址

    93.复原IP地址 题目地址:https://leetcode-cn.com/problems/restore-ip-addresses/ 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地 ...

  2. 142. Leetcode 93. 复原 IP 地址 (回溯算法-切割问题)

    分析剪枝条件: 1.一开始,字符串的长度小于 4 或者大于 12 ,一定不能拼凑出合法的 ip 地址(这一点可以一般化到中间结点的判断中,以产生剪枝行为); 2.每一个结点可以选择截取的方法只有 3 ...

  3. 回溯算法-----复原IP地址(Java版本)

    题目 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式.有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 '.' 分隔.示例:输入: " ...

  4. 回溯算法——复原IP地址(Leetcode 93)

    题目选自Leetcode 93.复原IP地址 由于我们需要找出所有可能复原出的 IP 地址,因此可以考虑使用回溯的方法,对所有可能的字符串分隔方式进行搜索,并筛选出满足要求的作为答案. 通俗来讲,就是 ...

  5. LeetCode 93. 复原 IP 地址【字符串,回溯算法】

    93. 复原 IP 地址 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔. 例如:"0.1.2.201" ...

  6. 93. 复原 IP 地址

    93. 复原 IP 地址 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔. 例如:"0.1.2.201" ...

  7. 007.复原 IP 地址

    1.题目链接: 93. 复原 IP 地址 2.解题思路: 2.1.题目要求: 给定一串只包含数字的字符串s,返回所有让 s 构成 有效IP地址 的数字组合. 有IP地址: 4个 [0,255] 范围内 ...

  8. LeetCode 第 93 题:复原IP地址(C++)

    93. 复原IP地址 - 力扣(LeetCode) 最开始的思路是对字符串进行三次切割,每次从左边切一块下来(最多切3位数). 那么我们现在有三个切割点(下标) i, j, k,它们应该满足: n=s ...

  9. leetcode:491. 递增子序列、17. 电话号码的字母组合、31. 分割回文串、93. 复原 IP 地址(JavaScript)

    文章目录 491. 递增子序列 分析 去重 如何保证递增呢? 17. 电话号码的字母组合 思路: 单层递归逻辑 递归终止条件 完整代码 另一种写法 31. 分割回文串 思路:分析题目本题可分为两步 9 ...

  10. [LeetCode] Restore IP Addresses 复原IP地址

    Given a string containing only digits, restore it by returning all possible valid IP address combina ...

最新文章

  1. python的上下文管理
  2. Android网络连接监听
  3. html中评论存储方法,html5基于数据存储的评论留言板demo
  4. Redis 持久化策略 : RDB持久化、AOF持久化、混合持久化
  5. MicroBlaze程序融合fpga的bit并烧写入Flash方法
  6. 给linux用户加入sudo权限
  7. asp按时间自动递增编号_约束力最强的手铐——美国ASP钢性手铐
  8. nyoj1052 看美女2
  9. Buildroot笔记
  10. ubuntu18.04智能拼音候选字体调节方法
  11. python import 类如何捕获clrt c_PEP8 python规范神器
  12. arcgis中制作出行od图_arcgis制作坡度图
  13. 冈萨雷斯《数字图像处理》学习笔记(七)小波变换和多分辨率处理
  14. 微信开发-微信公共账号申请与接入(1)
  15. Flutter 2(1),还在等机会
  16. (附源码)ssm高校志愿者服务系统 毕业设计 011648
  17. depot_tools在windows上用遇到的问题和RTC编译出错
  18. 格式锂电池过放后无法充电,无法识别|救活方法
  19. python调用perl 乱码 ‘perl‘ �����ڲ����ⲿ���Ҳ���ǿ����еij��� ���������ļ���
  20. 怎样绕过计算机密码,如何利用U盘绕过电脑开机密码

热门文章

  1. pg和MySQL读性能_[评测]低配环境下,PostgresQL和Mysql读写性能简单对比
  2. [转]PT与PX区别
  3. CSS实现折角样式效果
  4. 在php中cm和kg用什么表示,将g/cm³换算为kg/m³ (克每立方厘米换算为千克每立方米)...
  5. 磁盘分区误删怎样恢复?
  6. Laravel文档梳理9、Blade模板
  7. Laravel文档阅读笔记-mews/captcha的使用(验证码功能)
  8. 自媒体赚钱网站有哪些(写文章赚钱的网站大全)
  9. 塔米狗上的达人名片有什么作用?
  10. python爬虫--代理的使用