您的位置:首页 > 其它

LeetCode_Restore IP Addresses

2013-08-12 23:17 393 查看
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)


  

class Solution {
public:
bool  check(string s){
if(atoi(s.c_str()) > 255) return false;
if(s.size() >1 && s[0] == '0')return false;
return true;
}
void dfs(string s, vector<string> &cur){
if(cur.size() == 3 ){
if(s.size() >=1 &&check(s)){
cur.push_back(s);
res.push_back(cur[0]+'.'+cur[1]+'.'+cur[2]+'.'+cur[3]);
cur.pop_back();
}
return ;
}

for(int i = 1; i <= 3 && i <= s.size(); i++){
string temp = s.substr(0,i) ;
if(check(temp)){
cur.push_back(temp);
dfs(s.substr(i,s.size()-i),cur);
cur.pop_back();
}
}

}
vector<string> restoreIpAddresses(string s) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
res.clear();
if(s.size()>12 || s.size() <4) return res;
vector<string> cur;
dfs(s,cur);
return res;
}
private:
vector<string> res;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: