LeetCode 93. 复原IP地址(回溯)
1. 题目
给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。
示例:
输入: "25525511135"
输出: ["255.255.11.135", "255.255.111.35"]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/restore-ip-addresses
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 回溯算法
相关题目:LeetCode 468. 验证IP地址
class Solution {vector<string> ans;
public:vector<string> restoreIpAddresses(string s) {if(s.size() < 4 || s.size() > 12)return {};bt(s,1,0);//从第一个字符前面开始插入.return ans;}void bt(string &s, int idx, int count){if(count > 3)//3个.才行return;if(count == 3 && isIPv4(s)){ans.push_back(s);return;}for(int i = idx; i < s.size(); ++i){s.insert(i,".");bt(s,i+2,count+1);//插入后,至少向后移动2个位置再插入新的.s.erase(i,1);//回溯,删除1个字符 . }}bool isIPv4(string &IP) //参考leetcode 468{vector<string> part;split(IP, part);int s, i;for(auto p : part){s = 0;if(p == "" || (p[0] == '0' && p.size() != 1)) //不能有前置0return false;for(i = 0; i < p.size(); ++i){if(!isdigit(p[i]))return false;s = s*10+p[i]-'0';if(s > 255) //数字不能超范围return false;}}return true;}void split(string &IP, vector<string> &part){string p;for(int i = 0; i < IP.size(); ++i){if((IP[i]=='.' || i == IP.size()-1)){if(i == IP.size()-1)p += IP[i];part.push_back(p);p = "";}elsep += IP[i];}}
};
LeetCode 93. 复原IP地址(回溯)相关推荐
- 142. Leetcode 93. 复原 IP 地址 (回溯算法-切割问题)
分析剪枝条件: 1.一开始,字符串的长度小于 4 或者大于 12 ,一定不能拼凑出合法的 ip 地址(这一点可以一般化到中间结点的判断中,以产生剪枝行为); 2.每一个结点可以选择截取的方法只有 3 ...
- LeetCode 93. 复原 IP 地址【字符串,回溯算法】
93. 复原 IP 地址 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔. 例如:"0.1.2.201" ...
- leetcode 93. 复原IP地址 思考分析
题目 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 有效的 IP 地址 正好由四个整数(每个整数位于 0 到 255之间组成,且不能含有前导 0),整数之间用 '.' 分隔. ...
- 多看看把,条件太多了--leetcode 93. 复原 IP 地址
难度:中等 频次:62 题目: 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔. 例如:"0.1.2.201&quo ...
- LeetCode 93. 复原IP地址
思路: 回溯+剪枝 遍历字符串,先计算第一网段,分别取1 2 3位数字,并组合判断是否符合IP规范, 若符合跳至下一网段,并且索引start挪位,temp+本网段值+"." 递归 ...
- leetcode 93.复原IP地址 dfs解法
给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: ["255.255.11.135", ...
- leetcode:491. 递增子序列、17. 电话号码的字母组合、31. 分割回文串、93. 复原 IP 地址(JavaScript)
文章目录 491. 递增子序列 分析 去重 如何保证递增呢? 17. 电话号码的字母组合 思路: 单层递归逻辑 递归终止条件 完整代码 另一种写法 31. 分割回文串 思路:分析题目本题可分为两步 9 ...
- java实现复原IP地址,回溯算法:复原IP地址
93.复原IP地址 题目地址:https://leetcode-cn.com/problems/restore-ip-addresses/ 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地 ...
- 93. 复原 IP 地址
93. 复原 IP 地址 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔. 例如:"0.1.2.201" ...
最新文章
- 英特尔媒体年会场景(15P)——实拍与小结
- Linux下的多进程间共享资源的互斥访问
- 指定wsus服务器,步骤 2:在服务器上安装 WSUS
- STM32的ADC笔记
- 模板匹配(Match Template)
- 夜深了,发点无聊的东西
- iOS中AutoLayer自动布局流程及相关方法
- labview串口数据采集并显示_一种NB-IoT冶金节点温度采集与远程监测系统的设计...
- lr分析器的设计与实现实验_GBDT+LR:Practical Lessons from Predicting Clicks on Ads
- 吴恩达机器学习ex5:正则化线性回归和方差与偏差
- App 抓包-Fiddler简单使用教程
- 如何快速批量新建文本文档(txt)?
- 网上测试性格的软件依据是什么意思,(观点)mbti性格测试如此流行,它有科学依据吗?...
- zcmu-1410: Polynomial Showdown
- Win10以太网网络电缆被拔出,没有WLAN选项
- MAC电脑连接windows台式机
- [教程] 使用 Chrome 从 Google Drive 进行多线程、断点续传下载
- VPX信号处理板VPX3U-2DSP-C6678
- 关于eclipse SE版本不支持建立web工程的问题
- 周杰伦赴日展中国风自弹自唱
热门文章
- sudo apt-get nmap 报错锁占用
- mysql数据库表复用_MySQL 数据库之表操作
- html+监听+页面滚动到底部,解决HTML5中滚动到底部的事件问题
- platform_device和platform_driver的注册过程,及probe函数何时调用的分析
- spring--打印hello--注解component--自动创建对象
- 【音乐】想不起来歌名的瞎唱
- php swoole websocket vue 实现聊天室案例
- 8.在idea中配置maven
- hihoCoder #1143 : 骨牌覆盖问题·一
- VBA之六--EXCEL VBA两则