resotreIpAddress
2015-11-26 11:46
363 查看
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)
Subscribe to see which companies asked this question
For example:
Given "25525511135",
return ["255.255.11.135", "255.255.111.35"]. (Order does not matter)
Subscribe to see which companies asked this question
#include <string> #include <vector> using namespace std; class Solution { public: vector<string> restoreIpAddresses(string s) { vector<string> result; vector<int> path; dfs(s,0,0,path,result); return result; } private: void dfs(string& s,int start,int num, vector<int>& path,vector<string>& result){ if(num == 3) { string str = s; for(int i=0;i<3;i++){ str.insert(path[i]+i,1,'.'); } result.push_back(str); return; } for(int i=1;i<4;i++){ if((start+i)<s.length() && 3-num<=s.substr(start+i).length() && s.substr(start+i).length()<=(3-num)*3){ if(stoi(s.substr(start,i))<=255){ if(i>1 && s[start] =='0') break; if(num==2 && stoi(s.substr(start+i))>255) continue; if(num==2 && s.substr(start+i).length()>1 && s[start+i]=='0') continue; if(path.empty()) path.push_back(i); else path.push_back(path.back()+i); dfs(s,start+i,num+1,path,result); path.pop_back(); } } } } }; int main(){ string IPaddress="1203045"; Solution s; vector<string> result; result = s.restoreIpAddresses(IPaddress); return 0; }
相关文章推荐
- 支持移动设备的图片展示插件
- [Java代码] java数学表达式计算 QLExpress
- MySQL5日期类型TIMESTAMP相关问题解说
- 移动研究院和银行类面试
- Android性能优化之常见的内存泄漏
- 欢迎使用CSDN-markdown编辑器
- OSGChina推出的视频的教程章节
- Android sqlite 表更新
- 数据库里的 if while
- 使用jQuery要注意的问题
- js判断访问者是否来自移动端代码
- 监控相机镜头 焦距
- 用可变参数列表模拟实现printf函数
- IO多路复用之epoll
- 通讯录分组 开源框架 PinnedSectionListView
- Linux 下Tomcat7.0.42的安装
- java的Calendar和Date类
- JSP_页面中设置引用资源的方法(basePath)
- 欧几里得游戏
- java 四种线程池