• Restore IP Addresses


    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 {
    private:
        vector<string> result;
        unordered_set<string> ipset;
    public:
        vector<string> restoreIpAddresses(string s) 
        {
            result.clear();
            int len=s.length();
            if(len<4return result;
            for(int i1=0;i1<=len-4 && i1+1<=3;i1++)
                for(int i2=i1+1;i2<=len-3 && i2-i1<=3;i2++)
                    for(int i3=i2+1;i3<=len-2 && i3-i2<=3;i3++)
                    if(len-i3-1<=3)
                    {
                        int len1=i1+1;
                        int len2=i2-i1;
                        int len3=i3-i2;
                        int len4=len-i3-1;
                        int add1=atoi(s.substr(0,len1).c_str());
                        int add2=atoi(s.substr(i1+1,len2).c_str());
                        int add3=atoi(s.substr(i2+1,len3).c_str());
                        int add4=atoi(s.substr(i3+1,len4).c_str());
                        string s1=getstring(add1);
                        string s2=getstring(add2);
                        string s3=getstring(add3);
                        string s4=getstring(add4);
                        if(add1>=0 && add1<=255 && add2>=0 && add2<=255
                        && add3>=0 && add3<=255 && add4>=0 && add4<=255)
                        {
                            string ip=s1+"."+s2+"."+s3+"."+s4;
                            if(ip.length()==3+len && ipset.find(ip)==ipset.end())
                            {
                                result.push_back(ip);
                                ipset.insert(ip);
                            }
                        }
                    }
            return result;
        }
        string getstring ( const int n )
        {
            std::stringstream newstr;
            newstr<<n;
            return newstr.str();
        }
    }; 
  • 相关阅读:
    Appium+python自动化(三十九)-Appium自动化测试框架综合实践
    Mish:一个新的SOTA激活函数,ReLU的继任者
    [Python爬虫] 使用 Beautiful Soup 4 快速爬取所需的网页信息
    Windows环境下的TensorFlow安装过程
    深度学习必懂的13种概率分布
    LaTeX技巧96:LaTeX 图片控制命令,位置控制
    设置UniDbGrid的整行显示颜色,如果某字段值是我们的控制字段
    UniDBGrid增加显示记录数的label及隐藏refresh按钮
    unidbgrid 设置 单元格颜色
    给uniGUI的表格控件uniDBGrid加上记录序号的列
  • 原文地址:https://www.cnblogs.com/erictanghu/p/3759563.html
Copyright © 2020-2023  润新知