[leetcode]Restore IP Addresses
来源:互联网 发布:设计主题软件 编辑:程序博客网 时间:2024/06/05 18:57
Restore IP Addresses
Given a string containing only digits, restore it by returning all possible valid IP address combinations.
For example:
Given "25525511135"
,
return ["255.255.11.135", "255.255.111.35"]
. (Order does not matter)
解题思路:递归遍历
void push(string &str, int start, int n, string &retStr){ for(int i = 0; i < n; i++){ retStr.push_back(str[start + i]); }}void pop(string &retStr, int n){ for(int i = 0; i < n; i++){ retStr.pop_back(); }}void innserRestoreIP(string str, int start, int dot, string rets, vector<string> & vs){int slen = str.size();int gap = slen - start;if(0 == dot){//如果剩下数字大于3或没有剩,或剩下2个以及以上第一个不能以0开头if(gap > 3 || 0 == gap || (gap > 1 && '0' == str[start])) return; string s(str, start, gap);if(atoi(s.c_str()) > 255) return; //剩下的数字大于255也不合法push(str, start, gap, rets);vs.push_back(rets);return;}if(start < slen){push(str, start, 1, rets); //先取一个字符rets.push_back('.');innserRestoreIP(str, start + 1, dot - 1, rets, vs);pop(rets, 2);}if(str[start] != '0'){ //取两或三个字符但不能以0开头if(start + 1 < slen){push(str, start, 2, rets);rets.push_back('.');innserRestoreIP(str, start + 2, dot - 1, rets, vs);pop(rets, 3);}if(start + 2 < slen){string tmpStr(str, start, 3);if(atoi(tmpStr.c_str()) <= 255){push(str, start, 3, rets);rets.push_back('.');innserRestoreIP(str, start + 3, dot - 1, rets, vs);pop(rets, 4); }} }}vector<string> restoreIpAddresses(string s) {vector<string> vs;string rets;innserRestoreIP(s, 0, 3, rets, vs); //源始字符串,下标0,句点的个数return vs;}
0 0
- LeetCode: Restore IP Addresses
- LeetCode : Restore IP Addresses
- [LeetCode] Restore IP Addresses
- [LeetCode]Restore IP Addresses
- LeetCode:Restore IP Addresses
- LeetCode Restore IP Addresses
- [leetcode] Restore IP Addresses
- LeetCode:Restore IP Addresses
- [LeetCode] Restore IP Addresses
- LeetCode - Restore IP Addresses
- LeetCode | Restore IP Addresses
- 【leetcode】Restore IP Addresses
- Leetcode: Restore IP Addresses
- leetcode Restore IP Addresses
- leetcode Restore IP Addresses
- [LeetCode] Restore IP Addresses
- Leetcode: Restore IP Addresses
- [LeetCode] Restore IP Addresses
- 主机有线上不了网,无线正常
- java提高篇(四)-----抽象类与接口
- 系统函数
- Node.js global 变量 (全局命名空间!)
- HDU 4585 & 4584
- [leetcode]Restore IP Addresses
- bzoj 1600 & Usaco 月赛 2008 建造栅栏 题解
- js小记
- WebSocket官方文档翻译——HTML5 Web Sockets:A Quantum Leap in Scalability for the Web
- Madplay移植到mini2440全过程详解
- as加载网站的xml
- Http协议学习
- 第49天
- 学渣报道