您的位置:首页 > 其它

[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;
        
    }
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: