首页 > 代码库 > leetcode - Restore IP Addresses
leetcode - Restore IP Addresses
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)
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; } };
leetcode - Restore IP Addresses
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。