Restore IP Addresses

原创 2015年07月07日 17:40:18

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;
    }




版权声明:本文为博主原创文章,未经博主允许不得转载。

运维发布服务时候设置"hostname":"0.0.0.0"

以前没接触过运维,现在不免动手发布一些java服务,碰到绑定ip:端口问题。 What is the difference between 0.0.0.0, 127.0.0.1 and ...
  • doctor_who2004
  • doctor_who2004
  • 2015年11月23日 11:28
  • 1371

LoadRunner 技巧之 IP欺骗

IP欺骗也是也loadrunner自带的一个非常有用的功能。 需要使用ip欺骗的原因: 1、当某个IP的访问过于频繁,或者访问量过大是,服务器会拒绝访问请求,这时候通过IP欺骗可以增加访问频率...
  • u011648042
  • u011648042
  • 2013年11月19日 17:20
  • 1141

WebsenseURL 分类及应用识别类别信息

http://cn.websense.com/content/websense-url-categories.aspx Websense 拥有最多的基本类别。 堕胎 公正看待该问...
  • jiayanhui2877
  • jiayanhui2877
  • 2014年01月02日 16:12
  • 1335

【leetcode】String——Restore IP Addresses (93)

题目: Given a string containing only digits, restore it by returning all possible valid IP address ...
  • u013127687
  • u013127687
  • 2016年04月28日 17:32
  • 236

leetcode:Restore IP Addresses 【Java】

一、问题描述 Given a string containing only digits, restore it by returning all possible valid IP addres...
  • tterminator
  • tterminator
  • 2016年03月15日 23:07
  • 366

Restore IP Addresses

题目 Given a string containing only digits, restore it by returning all possible valid IP address comb...
  • Boyhou
  • Boyhou
  • 2013年07月28日 17:34
  • 920

Leetcode--Restore IP Addresses

Given a string containing only digits, restore it by returning all possible valid IP address combina...
  • yskyj
  • yskyj
  • 2014年10月12日 21:23
  • 258

Restore IP Addresses Java

Given a string containing only digits, restore it by returning all possible valid IP address combina...
  • linxiang0591
  • linxiang0591
  • 2014年08月28日 09:30
  • 241

[LeetCode][Java] Restore IP Addresses

题目: Given a string containing only digits, restore it by returning all possible valid IP addres...
  • Evan123mg
  • Evan123mg
  • 2015年07月20日 10:29
  • 405

leetcode:Restore IP Addresses

Given a string containing only digits, restore it by returning all possible valid IP address combina...
  • chaiyiping
  • chaiyiping
  • 2014年11月05日 15:09
  • 346
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Restore IP Addresses
举报原因:
原因补充:

(最多只允许输入30个字)