DFS之Restore IP Addresses
2015-10-17 18:08
387 查看
Given a string containing only digits, restore it by returning all possible valid IP address combinations.
For example:
Given
return
For example:
Given
"25525511135",
return
["255.255.11.135", "255.255.111.35"]. (Order does not matter)
class Solution { private: vector<string> ret; int pos[4]; public: bool check(string &s, int beg, int end) { string ip(s, beg, end - beg + 1); if (ip.size() == 1) return "0" <= ip && ip <= "9"; else if (ip.size() == 2) return "10" <= ip && ip <= "99"; else if (ip.size() == 3) return "100" <= ip && ip <= "255"; else return false; } void dfs(int dep, int maxDep, string &s, int start) { if (dep == maxDep) { if (start == s.size()) { int beg = 0; string addr; for(int i = 0; i < maxDep; i++) { string ip(s, beg, pos[i] - beg + 1); beg = pos[i] + 1; addr += i == 0 ? ip : "." + ip; } ret.push_back(addr); } return; } for(int i = start; i < s.size(); i++) if (check(s, start, i)) { pos[dep] = i; dfs(dep + 1, maxDep, s, i + 1); } } vector<string> restoreIpAddresses(string s) { // Start typing your C/C++ solution below // DO NOT write int main() function ret.clear(); dfs(0, 4, s, 0); return ret; } };
相关文章推荐
- 数据结构-排序
- VB读取XML文件,selectNodes获取节点属性
- LINUX 环境下源码方式安装mysql(二)my.cnf配置细节详解
- git服务器简易搭建法
- 在CentOS上搭建PHP服务器环境
- Submitted credentials for token did not match the expected credentials.
- 结伴编写程序
- 程序设计及总结
- C#指针转换
- 深度学习如何提取特征
- Java String
- Caused by: java.net.SocketException: Software caused connection abort: socket write error
- 并查集
- Vmware桥接设置适合局域网
- PS学习笔记
- Python+Django+Eclipse 在Windows下快速配置
- 面试题 求一个字节中的1的位数
- HDU 1272 小希迷宫(并检查集合)
- 如果你操作文件夹时出现莫名其妙的错误
- Objective-C内存管理中的Retain Circle