93. Restore IP Addresses
Medium
639251FavoriteShare
Given a string containing only digits, restore it by returning all possible valid IP address combinations.
Example:
Input: "25525511135"
Output: ["255.255.11.135", "255.255.111.35"]
class Solution {
public:
bool Check(string ip){
int value = stoi(ip);
if(ip[0] == '0'){
return (ip.size() == 1);
}
else{
if(value <= 255){
return true;
}
else{
return false;
}
}
}
vector<string> restoreIpAddresses(string s) {
vector<string> Result;
if(s.length() < 4 || s.length() > 12){
return Result;
}
for(int i = 1;i <= s.length();i++){
for(int j = i + 1;j <= s.length();j ++){
for(int k = j + 1;k <= s.length() - 1;k++){
string ip1 = s.substr(0,i);
string ip2 = s.substr(i,j - i);
string ip3 = s.substr(j,k - j);
string ip4 = s.substr(k);
cout << "ip1:" << ip1 << "ip2:" << ip2 << "ip3:" << ip3 << "ip4:" << ip4<<endl;
if(Check(ip1) && Check(ip2) && Check(ip3) && Check(ip4)){
string tmp = ip1 + "." + ip2 + "." + ip3 + "." + ip4;
Result.push_back(tmp);
}
}
}
}
return Result;
}
};