[Leetcode 93, Medium] Restore IP Addresses

来源:互联网 发布:腾讯云怎么解析cn域名 编辑:程序博客网 时间:2024/06/05 07:30

Problem:

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)

Analysis:


Solutions:

C++:

void GenerateIPs(string str, string ip_temp, vector<string>& vIPs, int num_parts)     {        if(num_parts == 3) {            if(str.size() > 3                || (str.size() == 3 && stoi(str) > 255)               || (str[0] == '0' && str.size() > 1))                return;            vIPs.push_back(ip_temp + str);        } else {            for(int i = 1; i < str.size() && i <= 3; ++i) {                if((str[0] == '0' && i > 1)                    || (i == 3 && stoi(str.substr(0, 3)) > 255))                    break;                GenerateIPs(str.substr(i), ip_temp + str.substr(0, i) + ".", vIPs, num_parts + 1);            }        }    }        vector<string> restoreIpAddresses(string s) {        vector<string> vIPs;        int size = s.size();        if(size == 0 || size < 4 || size > 12 || (size == 12 && s[0] >= '3'))            return vIPs;        string ip_temp;        GenerateIPs(s, ip_temp, vIPs, 0);        return vIPs;    }
Java:


Python:


0 0