[LeetCode]Restore IP Addresses
2016-09-16 20:19
393 查看
class Solution {
public:
vector<string> restoreIpAddresses(string s) {
vector<string> result;
if(s.length() ==
0) return result;
result = restoreIpAddresses(s,
0, 0);
return result;
}
vector<string> restoreIpAddresses(string s,int
start_pos,int index){
vector<string> temp;
if(start_pos>s.length()-1)
return temp;
int max =
4;
if(s[start_pos]-48>2){
max = 3;
}
if(s[start_pos]-48 ==
0){
max = 2;
}
if(index ==
3){
if(s.length()-start_pos>max-1){
return temp;
}else{
stringstream ss;
ss<<s.substr(start_pos,s.length()-start_pos);
int temp_int;
ss>>temp_int;
if(temp_int>255)
return temp;
temp.push_back(s.substr(start_pos,s.length()-start_pos));
return temp;
}
}
for(int i =1;i<max;i++){
stringstream ss;
ss<<s.substr(start_pos,i);
int temp_int ;
ss>>temp_int;
if(temp_int>255)
return temp;
vector<string> result =
restoreIpAddresses(s, start_pos+i,index+1);
for(int j =0;j<result.size();j++){
string temp_s = s.substr(start_pos,i)+"."+result[j];
temp.push_back(temp_s);
}
}
return temp;
}
};
public:
vector<string> restoreIpAddresses(string s) {
vector<string> result;
if(s.length() ==
0) return result;
result = restoreIpAddresses(s,
0, 0);
return result;
}
vector<string> restoreIpAddresses(string s,int
start_pos,int index){
vector<string> temp;
if(start_pos>s.length()-1)
return temp;
int max =
4;
if(s[start_pos]-48>2){
max = 3;
}
if(s[start_pos]-48 ==
0){
max = 2;
}
if(index ==
3){
if(s.length()-start_pos>max-1){
return temp;
}else{
stringstream ss;
ss<<s.substr(start_pos,s.length()-start_pos);
int temp_int;
ss>>temp_int;
if(temp_int>255)
return temp;
temp.push_back(s.substr(start_pos,s.length()-start_pos));
return temp;
}
}
for(int i =1;i<max;i++){
stringstream ss;
ss<<s.substr(start_pos,i);
int temp_int ;
ss>>temp_int;
if(temp_int>255)
return temp;
vector<string> result =
restoreIpAddresses(s, start_pos+i,index+1);
for(int j =0;j<result.size();j++){
string temp_s = s.substr(start_pos,i)+"."+result[j];
temp.push_back(temp_s);
}
}
return temp;
}
};
相关文章推荐
- leetcode--Restore IP Addresses
- Restore IP Addresses leetcode java
- leetcode做题总结,题目Restore IP Addresses 93
- leetcode -day29 Binary Tree Inorder Traversal & Restore IP Addresses
- [leetcode]Restore IP Addresses
- [Leetcode] Restore IP Addresses
- Leetcode: Restore IP Addresses
- [leetcode 93] Restore IP Addresses
- [LeetCode] 086: Restore IP Addresses
- Restore IP Addresses -- leetcode
- LeetCode - Refresh - Restore IP Addresses
- [C++]LeetCode: 40 Restore IP Addresses
- [LeetCode]Restore IP Addresses
- [Leetcode] Restore IP Addresses
- leetcode -day29 Binary Tree Inorder Traversal & Restore IP Addresses
- LeetCode - Restore IP Addresses
- LeetCode 10.6 Restore IP Addresses
- Leetcode: Restore IP Addresses
- Leetcode Restore IP Addresses
- Leetcode: Restore IP Addresses