zoukankan      html  css  js  c++  java
  • 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)

    解:

    主要思想:採用递归的方式。一个一个的增加到最后的ip中

    void formIpAddr(vector<string>&ret, string curIp, string nums, int idxIp){
            if(idxIp==1){
                if(nums.size()>3 || (nums.size()>1&&nums[0]=='0')){
                    return ;
                }
                const char * data=nums.c_str();
                if(nums.size()<=2||atoi(data)<=255){
                    ret.push_back(curIp+nums);
                    return;
                }
            }
            else{
                if(nums[0]=='0'){
                    string tmp=curIp+nums.substr(0,1)+".";
                    formIpAddr(ret, tmp, nums.substr(1), idxIp-1);
                    return;
                }
                else{
                    int i;
                    string tmp;
                    for(i=0; i<2 && i+idxIp<=nums.size(); i++){
                        tmp=nums.substr(0, i+1);
                        formIpAddr(ret, curIp+tmp+".", nums.substr(i+1), idxIp-1);
                    }
                    if(i+idxIp<=nums.size()){
                        const char * data=nums.substr(0,i+1).c_str();
                        tmp=nums.substr(0, i+1);
                        if(atoi(data)<=255)
                            formIpAddr(ret, curIp+tmp+".", nums.substr(i+1), idxIp-1);
                    }
                }
            }
            
        }
    
        vector<string> restoreIpAddresses(string s) {
            vector<string> ret;
            if(s.size()<4)
                return ret;
            string curIp="";
            
            formIpAddr(ret, curIp, s, 4);
            return ret;
        }




  • 相关阅读:
    C#中关于DBNULL的处理方法
    html 点击复制
    AJAX的简洁写法
    PHP 数组模糊查询
    PHP二维数组搜索返回数组
    php 数组排序得方法
    PHPExcel的使用
    使用PHPword中文乱码并且下载的方法
    关于多图上传的修改的操作
    把一个表里的两列或者三列合并为一行
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/6811284.html
Copyright © 2011-2022 走看看