93. Restore IP Addresses
2016-05-25 10:19
197 查看
枚举
dfs枚举
class Solution { public: vector<string> restoreIpAddresses(string s) { vector<string> ret; string ans; for (int a=1; a<=3; a++) for (int b=1; b<=3; b++) for (int c=1; c<=3; c++) for (int d=1; d<=3; d++) if (a+b+c+d == s.length()) { int A = stoi(s.substr(0, a)); int B = stoi(s.substr(a, b)); int C = stoi(s.substr(a+b, c)); int D = stoi(s.substr(a+b+c, d)); if (A<=255 && B<=255 && C<=255 && D<=255) { ans=to_string(A)+"."+to_string(B)+"."+to_string(C)+"."+to_string(D); if(ans.length()==s.length()+3) { ret.push_back(ans); } } } return ret; } };
dfs枚举
class Solution { private: void dfs(string &s,vector<string>&ret,int startidx,string mstr,int depth) { if(depth>4) return; if(depth==4&&startidx==s.length()) ret.push_back(mstr); else { for(int i=1;i<4;i++) { if(startidx+i>s.length()) continue; string subs=s.substr(startidx,i); if(subs[0]=='0'&&i>1||stoi(subs)>=256&&i==3) continue; dfs(s,ret,startidx+i,mstr+subs+(depth==3?"":"."),depth+1); } } } public: vector<string> restoreIpAddresses(string s) { vector<string> ret; dfs(s,ret,0,"",0); return ret; } };
相关文章推荐
- Tomcat装载Servlet的三种情况
- QT4使用HDF5 类型错误
- 在线LDD3[linux device driver]
- 第二次冲刺阶段第二天
- mysql中文乱码
- Android自定义View之继承TextView绘制背景
- mybatisGenerator 代码自动生成报错 Result Maps collection already contains value for BaseResultMap
- 《财富》访谈:Oracle为什么不会干掉MySQL
- File类之遍历文件夹
- hadoop fs管理文件权限
- 【结构型】Adapter模式
- Animate CSS
- bindOrg函数
- View controller-based status bar appearance
- Xamarin 技术全解析
- Android xml实现animation的4种动画效果实例代码
- 高级IO中socketpair实现进程间通信以及重定向
- Python入门-数据结构类型
- JSONModel 的使用总结
- 用RSA加密实现Web登录密码加密传输