注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
class Solution {
public:
/**
* @param s: the IP string
* @return: All possible valid IP addresses
*/
vector<string> restoreIpAddresses(string &s) {
// write your code here
int sizeS = s.size();
vector<string> res;
if(sizeS == 0){
return res;
}
string resElem;
dfs(s, res, resElem, 0);
return res;
}
void dfs(string &s, vector<string> &res, string &resElem, int start){
if(start == s.size()){
if(resElem.size() == s.size() + 3){
res.push_back(resElem);
}
return;
}
for(int i = start; i < s.size(); i++){
string temp = s.substr(start, i - start + 1);
if(temp.size() == 1 || (temp.size() <= 3 && temp.size() > 1 && temp[0] != '0' && temp <= "255")){
string temp1 = resElem;
if(resElem.empty()){
resElem += temp;
}
else{
resElem += ".";
resElem += temp;
}
dfs(s, res, resElem, i + 1);
resElem = temp1;
}
}
}
};
过不了这个case,实在查不出bug在哪里。求指点啊~~
Input
"25525511135"
Output
["255.255.11.135"]
Expected
["255.255.11.135","255.255.111.35"]
|