leetcode - Restore IP Addresses
2016-03-02 14:19
381 查看
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 { public: std::vector<std::string> restoreIpAddresses(std::string s) { std::vector<std::string> res; if(s.size() < 4 || s.size() > 12) return res; dfs(s,1,"",res); #if 1 for (int i = 0; i < res.size(); i++) { std::cout << res[i] << std::endl; } #endif // 1 return res; } private: void dfs(std::string s,int n, std::string ip,std::vector<std::string> &res) { if(s.size() == 0) return; if(n == 4 && isValid(s)) { ip += s; res.push_back(ip); return; } for (int i = 1; i <= 3; i++) { if(i > s.size()) break; std::string t = s.substr(0,i); if(isValid(t)) { std::string tmp = s.substr(i); dfs(tmp,n+1,ip+t+".",res); } } } bool isValid(std::string s) { if(s.size() == 0 || (s.size() > 1 && s[0] == '0')) return false; int n = std::atoi(s.c_str()); if(0 <= n && n <= 255) return true; return false; } };
相关文章推荐
- Android--Logcat
- %02d的使用
- 目标文件中符号表的符号类型
- 【精】进阶教程!让视觉设计变得高效+有说服力的4个步骤
- this class is not key value coding-compliant for the key buttonPressed.' 错误解决方式
- java 语言中的重载 跟 重写的区别
- Sapphire算法:GC Without Stop the World(上)
- Unity3d优化
- SHDP--Working With HBase (二)之HBase JDBC驱动Phoenix与SpringJDBCTemplate的集成
- 获得服务器硬件信息(CPUID、硬盘号、主板序列号、IP地址等)
- NoSQl简介(转)
- linux的定时任务--crontab
- Linux之platform设备驱动
- Postgres-XL9.5集群安装与配置
- opencv学习笔记(二十五)——实现相机拍照功能
- Builder模式的实现
- Java格式化日期、时间、数字、字符串
- Drools 查询学习
- Drools 函数学习
- 华为oj 找出字符串中第一个只出现一次的字符