93. Restore IP Addresses
problem description
Input: "25525511135"
Output: ["255.255.11.135", "255.255.111.35"]algorithm thought
code
class Solution {
public:
vector<string> restoreIpAddresses(string s) {
vector<string> res;
for(int a=1;a<=3;++a){
for(int b=1;b<=3;++b){
for(int c=1;c<=3;++c){
for(int d=1;d<=3;++d){
if(a+b+c+d!=s.size())
continue;
string s1=s.substr(0,a);
string s2=s.substr(a,b);
string s3=s.substr(a+b,c);
string s4=s.substr(a+b+c,d);
if((s1[0]=='0'&&s1.size()!=1)||(s2[0]=='0'&&s2.size()!=1)||(s3[0]=='0'&&s3.size()!=1)||(s4[0]=='0'&&s4.size()!=1))
continue;
//cout<<s1<<' '<<s2<<' '<<s3<<' '<<s4<<'-';
//cout<<atoi(s1.c_str())<<(atoi(s1.c_str())<=255)<<' ';
if((atoi(s1.c_str())<=255)&&(atoi(s2.c_str())<=255)&&(atoi(s3.c_str())<=255)&&(atoi(s4.c_str())<=255))
res.push_back(s1+'.'+s2+'.'+s3+'.'+s4);
}
}
}
}
return res;
}
};algorithm analysis
Last updated