思路:

回溯+剪枝

遍历字符串,先计算第一网段,分别取1 2 3位数字,并组合判断是否符合IP规范,

若符合跳至下一网段,并且索引start挪位,temp+本网段值+“.”

递归

List<String> l = new ArrayList<>();public List<String> restoreIpAddresses(String s) {if(s.length()<4 || s.length() > 12){return l;}//1 表示第几个网段  0表示从字符串s哪一位开始算  “”表示追加的IPdfs(s,1,0,"");return l;}private void dfs(String s, int part,int start, String temp) {if(part == 4){if(isIP(s.substring(start))){l.add(temp+s.substring(start));}return;}for (int i = 1; i < 4 && start+i<s.length(); i++) {String t = s.substring(start,start+i);if(isIP(t)){dfs(s,part+1,start+i,temp+t+".");}}}private static boolean isIP(String substring) {if (substring.length() > 3) {return false;}if (substring.startsWith("0")) {return "0".equals(substring);} else {return Integer.valueOf(substring) <= 255;}}

LeetCode 93. 复原IP地址相关推荐

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

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

  2. LeetCode 93. 复原IP地址(回溯)

    1. 题目 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: ["255.255.11.135&q ...

  3. leetcode 93. 复原IP地址 思考分析

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

  4. 多看看把,条件太多了--leetcode 93. 复原 IP 地址

    难度:中等 频次:62 题目: 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔. 例如:"0.1.2.201&quo ...

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

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

  6. leetcode 93.复原IP地址 dfs解法

    给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: ["255.255.11.135", ...

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

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

  8. 93. 复原 IP 地址

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

  9. leetcode系列-93.复原 IP 地址

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

最新文章

  1. 63万张!旷视发布最大物体检测数据集Objects365 | 技术头条
  2. erdas叠加显示_ERDAS操作技巧
  3. 【若依(ruoyi)】Bootstrap-Table的使用
  4. 编写jmeter测试用例_Jmeter性能测试系列篇(十)--批量用例执行结果检查设置
  5. 挖掘建模-分类与预测-决策树
  6. maccmsv10 苹果cms 深度定制站群版
  7. bzoj 1638: [Usaco2007 Mar]Cow Traffic 奶牛交通(拓扑排序?+DP)
  8. 论文阅读 A SIMPLE BUT TOUGH-TO-BEAT BASELINE FOR SEN- TENCE EMBEDDINGS
  9. 斐讯 N1 降级、刷机及 Armbian 安装 [2019.7.23]
  10. 爱奇艺涨价背后,还有四步大棋
  11. GaussDB (for Cassandra) 数据库治理:大key与热key问题的检测与解决
  12. 关于keil5开发stc8等51单片机程序和在线调试的步骤
  13. 几何分布期望,方差推导
  14. 您未被授权查看该页 您不具备查看该目录或页面的权限,因为访问控制列表 (ACL) 对 Web 服务器上的该资源进行了配置
  15. 微信登录收不到回调的解决方法
  16. 微店API,item_search_shop - 获得店铺的所有商品
  17. power bi -分组累计求和
  18. 计算机技术发展作文,【推荐】科技发展作文三篇
  19. 简单网络拓扑及相应的配置
  20. python 编程题 埃及金字塔罐子倒水

热门文章

  1. 将表达式树转换成中缀表达式☆
  2. Django项目调用外部程序soffice报错subprocess.CalledProcessError: Command 'soffice --headless --convert-to pdf
  3. Python学习笔记之Windows下通过pip安装PyMySQL
  4. hadoop php mysql_PHP+Hadoop+Hive+Thrift+Mysql实现数据统计分析
  5. git本地安装配置与基础概念
  6. [转]UpdatePanel的用法详解
  7. 4、Linux的文件系统结构(目录树结构)
  8. windows8.1下安装Cygwin并通过apt-cyg安装软件包
  9. State_状态模式_PHP语言描述
  10. shell-script(command groups)