题解 | #数字字符串转化成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);
    }
};
全部评论

相关推荐

07-15 11:41
门头沟学院 Java
点赞 评论 收藏
分享
07-15 12:24
重庆大学 运营
坏消息:和好工作擦肩而过
给点吧求求了:怎么可能因为差几秒,估计就是简历更好看婉拒了
点赞 评论 收藏
分享
弦五Strings:他之所以会举报你代课是因为在这种人眼里正常上课就是正义代课就是邪恶,典型二极管思维,处理方法就是私下沟通,你就说你自己家里经济困难或者家里父母生病什么之类的,需要去打工挣钱,用尽孝的正义对冲他认为的上课的正义,他可能就妥协了。
我的实习日记
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务