题目描述

给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。

示例:

输入: "25525511135"
输出: ["255.255.11.135", "255.255.111.35"]

解题思路

利用回溯法的思想,从字符串第一个字符开始,分别检查从当前字符开始的第1、2、3位组成的数,若该数符合要求即小于256则加入到结果IP中,然后再从当前数的后一位置递归向后寻找。若遍历到第四个数,则判断最后几位组成的数是否满足要求,符合则加入到最后的集合中。注意当遇到当前数的起始位是0时,仅将0加入到字符串中就停止当前数的寻找,因为以‘0’开头的任何字符串转化成的数都会去掉前面的‘0’

代码

 class Solution {
public:
vector<string> restoreIpAddresses(string s) {
vector<string> res;
findIp(s, , , "", res);
return res;
}
void findIp(string s, int f, int idx, string ip, vector<string> &res){
if(idx == ){
if(s.size() - - f < ){
if(s[f] == '' && f != s.size() - ) return;
int num = stoi(s.substr(f, s.size() - f));
if(num < ){
ip += to_string(num);
res.push_back(ip);
}
}
}
else{
for(int i = ; i <= ; i++){
if(f + i >= s.size()) break;
int num = stoi(s.substr(f, i));
if(num < )
findIp(s, f + i, idx + , ip + to_string(num) + ".", res);
if(s[f] == '' && i == ) break;
}
}
}
};

LeetCode 93. 复原IP地址(Restore IP Addresses)的更多相关文章

  1. [Swift]LeetCode93. 复原IP地址 | Restore IP Addresses

    Given a string containing only digits, restore it by returning all possible valid IP address combina ...

  2. 获取IP地址 & 伪装IP地址发送请求

    //获取请求客户端IP地址   public final static String getIpAddress(HttpServletRequest request) throws IOExcepti ...

  3. Windows:查看IP地址,IP地址对应的机器名,占用的端口,以及占用该端口的应用程

    Windows 服务器系列: Windows:查看IP地址,IP地址对应的机器名,占用的端口,以及占用该端口的应用程 Windows:使用Dos命令管理服务(Services) Windows:任务调 ...

  4. Java实现 LeetCode 93 复原IP地址

    93. 复原IP地址 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: ["255.255.11. ...

  5. leetcode 93 复原IP地址

    IP地址,分成四段,每段是0-255,按照每段的长度分别为1,2,3下一段长度分别1,2,3再下一段......进行递归遍历,能满足条件的假如res中.比较难想到的就是假如有一段是三位的010是不符合 ...

  6. 【leetcode刷题笔记】Restore IP Addresses

    Given a string containing only digits, restore it by returning all possible valid IP address combina ...

  7. 根据IP地址获取IP的详细信息

    <?php header('Content-Type:text/html; charset=utf-8'); function ip_data() { $ip = GetIP(); $url = ...

  8. linux修改主机名,关闭图形化界面,绑定ip地址,修改ip地址

    1关闭图形化界面 vi /etc/inittab 改成id:3:initdefault: 注意:不要选0或6 2.修改主机名 vi /etc/sysconfig/network 修改即可 3,修改ip ...

  9. 获取ip地址&&测试ip地址

    # request# 动态页面加载 Selenium# request# 响应类型为 json# import json # json.loads(str) # 将str转化为dict# json.d ...

  10. TC命令流量控制测试(针对具体IP地址和IP协议)

    这里测试系统为Linux操作系统,通过简单的TC命令来实现对带宽的控制. 1对具体IP地址的流量控制 这里采用iperf来进行带宽的测试,首先在服务器和客户端都安装上iperf软件,通过该软件下的命令 ...

随机推荐

  1. Js中toFixed()方法保留小数不精准的问题

    toFixed() 方法可把 Number 四舍五入为指定小数位数的数字. 问题:部分特殊数值使用toFixed() 方法会出现转换不正确的情况,举个例子: (3329.225).toFixed(2) ...

  2. Centos固定IP

    centos7 联网 在虚拟机中以最小化方式安装centos7,后无法上网,因为centos7默认网卡未激活. 而且在sbin目录中没有ifconfig文件,这是因为centos7已经不使用 ifco ...

  3. centos安装配置LAMP,https,fastcgi

    Centos7 配置LAMP+fastcgi(Centos7.2+php7.0+mariadb+httpd)   环境:阿里云centos7.3 一.安装并配置数据库 1.安装数据库 #yum ins ...

  4. 深入理解hive基础学习

    Hive 是什么?  1.Hive 是基于 Hadoop处理结构化数据的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类 SQL 查询功能. 2.Hive 利用 HDFS 存储数据 ...

  5. 从0开始Jmeter接口测试实战

    在之前的文章中给大家介绍过接口测试文档和接口测试用例示例,本文基于Jmeter工具给大家介绍一下如何实现接口测试用例:包括发起Http请求,绕过登陆,验证响应.JMeter是Apache组织开发的基于 ...

  6. MSSQL日期分组排序

    等于今天日期的排上面,大于今天的排中间,小于今天的排下面,带分页.

  7. java8学习之Stream分组与分区详解

    Stream应用: 继续举例来操练Stream,对于下面这两个集合: 需求是:将这两个集合组合起来,形成对各自人员打招呼的结果,输出的结果如: "Hi zhangsan".&quo ...

  8. 【AGC 036C】GP2

    https://atcoder.jp/contests/agc036/tasks/agc036_c 题意 有一个长度为 $n$ 的非负整数序列 $x$,初始时全为 $0$.一次操作定义为选择一对正整数 ...

  9. 牛客国庆集训派对Day5 A.璀璨光滑

    首先我们可以确认 1的值一定是0 题目要求的是 有边的两个点所代表的值二进制有一位不同(即有边相连的两个值二进制所包含的1的个数相差为1) 所以我们通过他给你的图进行BFS 把原图分为一圈一圈的 并且 ...

  10. ftp不能复制文件

    解决办法: ie->工具->internet选项->安全->自定义级别->下载->文件下载->启用