leetcode 125: Restore IP Addresses (uncompleted)

来源:互联网 发布:约翰威廉姆斯配乐知乎 编辑:程序博客网 时间:2024/06/06 03:07
Restore IP AddressesAug 8 '12

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:    vector<string> restoreIpAddresses(string s) {        // Start typing your C/C++ solution below        // DO NOT write int main() function     //  Given "25525511135",       // ["255.255.11.135", "255.255.111.35"]            vector<string> res;        string temp;                ipRec(res, temp, s, 0, 0);        return res;    }    private:    void ipRec(vector<string>& res, string& temp, string& s, int level, int index) {        if(level==4) {            if(index==s.length()) {                temp.pop_back();                res.push_back(temp);            }            return;        }                string t;                for(int i=0; i<3; i++) {            t.push_back(s[index+i]);            if(!isValid(t)) continue;                        temp.append(t);            temp.push_back('.');            ipRec(res, temp, s, level+1, index+i+1);            temp.pop_back();        }    }    bool isValid(string s) {        if(s.length()<1 || s.length()>3) return false;                if(s.length()==3 && s[2]==0) return false;        if(s.length()==2 && s[1]==0) return false;                int x=atoi(s.c_str());                if( x>=0 && x<=255) return true;        else return false;    }};


 

原创粉丝点击