LeetCode OJ:Restore IP Addresses(存储IP地址)
2015-11-10 17:16
477 查看
Given a string containing only digits, restore it by returning all possible valid IP address combinations.
For example:
Given
return
典型的dfs,但是要点是注意什么才是真的ip地址,代码如下:
写的有点乱了 ,见谅见谅
For example:
Given
"25525511135",
return
["255.255.11.135", "255.255.111.35"]. (Order does not matter)
典型的dfs,但是要点是注意什么才是真的ip地址,代码如下:
class Solution { public: vector<string> restoreIpAddresses(string s) { if (s.size() > 12) return ret; dfs(s, 0, 0); return ret; } bool check(string &s) { if (s.size() == 1) return "0" <= s && s <= "9"; else if (s.size() == 2) return "10" <= s && s <= "99"; else if (s.size() == 3) return "100" <= s && s <= "255"; else return false; } void dfs(const string & s, int start, int nth) { if (nth == 4 && start != s.size()) return; else if (nth == 4 && start == s.size()){ string tmp = ""; for (int i = 0; i < 3; ++i){ tmp += tmpRes[i]; tmp += "."; } tmp += tmpRes[3]; //为了凑格式 ret.push_back(tmp); } else for (int i = 1; i < 4; ++i){ if(start + i <= s.size()){ string tmp = s.substr(start, i); if(check(tmp)){ tmpRes.push_back(tmp); dfs(s, start + i, nth + 1); tmpRes.pop_back(); } } } } private: vector<string> tmpRes; vector<string> ret; };
写的有点乱了 ,见谅见谅
相关文章推荐
- ApkTool反编译apk,去除广告或者汉化后重新打包apk,并签名
- Android导出与使用带资源的lib包
- mysql触发器内执行shell脚本,shell脚本用curl访问php网页
- 编程之美-程序理解和时间分析整理
- Python基础教程100例 练习1
- Java——输出年月日
- comet4j解析
- Android高级控件的使用
- 黑马程序员--OC基础--NSFileManager用法深入
- 口袋笔记VS松鼠笔记
- Linux 下wdcp支持两种安装方式
- 02 (maven+SSH)网上商城项目实战之需求分析
- 自学php-PCRE兼容正则表达式
- POJ_4002 && HDU_4122 Alice's mooncake shop(RMQ)
- windows访问rhel7的共享,提示“您可能没有权限使用网络资源,请与这台服务器的管理员联系以查明您是否有访问权限”
- 【虾说】这些细节,会害死程序员
- 使用JSP页面生成PDF报表
- 更新GitHub上自己 Fork 的代码与原作者的项目进度一致
- windows上MS-MPI的使用
- UIWebView