首页 > 代码库 > LeetCode Restore IP Addresses
LeetCode Restore IP Addresses
class Solution {public: vector<string> restoreIpAddresses(string s) { vector<string> ips; vector<int> ip; dfs(s, 0, ip, ips); return ips; } void dfs(string& s, int pos, vector<int>& ip, vector<string>& ips) { int len = s.length(); int fid = ip.size(); if (len == pos) { if (fid == 4) { ips.push_back(intip2str(ip)); } return; } if (3 * (4 - fid) < len - pos) return; // avoid TL int cur = 0; for (int i=pos; i<len && i < pos+3; i++) { if (i != pos && cur == 0) break; // no leading zero in ip addr cur = cur * 10 + s[i] - ‘0‘; if (cur > 255) break; ip.push_back(cur); dfs(s, i + 1, ip, ips); ip.pop_back(); } } string intip2str(vector<int> &ip) { if (ip.size() != 4 ) { return "format error. number of fields should be 4"; } string strip; for (int i=0; i<4; i++) { strip.append(to_string(ip[i])); strip.append(i==3 ? "" : "."); } return strip; } };
反正ip地址数字不过直接dfs,不过也要稍微剪枝一下,前导零不能使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。