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"]
1 // c++ code 2 vector<string> restoreIpAddresses(string s) { 3 vector<string> ret; 4 string ans; 5 6 for (int a=1; a<=3; a++) 7 for (int b=1; b<=3; b++) 8 for (int c=1; c<=3; c++) 9 for (int d=1; d<=3; d++) 10 if (a+b+c+d == s.length()) { 11 int A = stoi(s.substr(0, a)); 12 int B = stoi(s.substr(a, b)); 13 int C = stoi(s.substr(a+b, c)); 14 int D = stoi(s.substr(a+b+c, d)); 15 if (A<=255 && B<=255 && C<=255 && D<=255) 16 if ( (ans=to_string(A)+"."+to_string(B)+"."+to_string(C)+"."+to_string(D)).length() == s.length()+3) 17 ret.push_back(ans); 18 } 19 20 return ret; 21 }