题解 | #数字字符串转化成IP地址#

数字字符串转化成IP地址

http://www.nowcoder.com/practice/ce73540d47374dbe85b3125f57727e1e

递归求解

看题解的时候发现的一个容易理解的代码,标记一下,用递归来解决每一次找小于255的数。 参考来源

class Solution {
public:
    /**
     * 
     * @param s string字符串 
     * @return string字符串vector
     */
    vector<string> restoreIpAddresses(string s) {
        // write code here
        vector<string> ret;
        findFitNum(s,ret,vector<string>());
        return ret;
    }
    void findFitNum(string s, vector<string>& ret, vector<string> tmp){
        if(s.empty() && tmp.size()==4){
            convert(ret,tmp);
            return;
        }
        for(int i = 1; i <= s.size(); i++){
            if(i > 1 && s[0]=='0') break;
            int num = stoi(s.substr(0,i));
            if(num<=255){
                tmp.push_back(s.substr(0,i));
                findFitNum(s.substr(i), ret, tmp);
                tmp.pop_back();
            }else break;
        }
    }
    void convert(vector<string>& ret, vector<string> tmp){
        string s_tmp;
        for(int i = 0; i < tmp.size(); i++){
            if(i != tmp.size()-1) tmp[i] += ".";
            s_tmp += tmp[i];
        }
        ret.push_back(s_tmp);
    }
};
全部评论

相关推荐

预计下个星期就能开奖吧,哪位老哥来给个准信
华孝子爱信等:对接人上周说的是这周
点赞 评论 收藏
分享
整顿职场的柯基很威猛:这种不可怕,最可怕的是夹在一帮名校里的二本选手,人家才是最稳的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务