lintcode-【中等】恢复IP地址
题目
给一个由数字组成的字符串。求出其可能恢复为的所有IP地址。链接。
样例
给出字符串 "25525511135"
,所有可能的IP地址为:
[
"255.255.11.135",
"255.255.111.35"
]
答案
直接暴力遍历就行了,只不过需要注意的是0,以及数字是不能有前缀0。
代码
- class Solution {
- private:
- int strToInt(const string &str)
- {
- int ans = ;
- int len = str.size();
- if(len > && str[] == '')
- {
- return ;
- }
- for(int i = ; i < len; ++ i)
- {
- ans = (ans * + str[i] - '');
- }
- return ans;
- }
- public:
- /**
- * @param s the IP string
- * @return All possible valid IP addresses
- */
- vector<string> restoreIpAddresses(string& s) {
- // Write your code here
- int len = s.size();
- vector<string> ans;
- string result;
- string first;
- string second;
- string third;
- string fourth;
- int iFirst,iSecond,iThird,iFourth;
- for(int i = ;i < len - ; ++ i)
- {
- first.push_back(s[i]);
- iFirst = strToInt(first);
- if(iFirst > )
- {
- break;
- }
- second.clear();
- for(int j = i + ; j < len - ; ++ j)
- {
- second.push_back(s[j]);
- iSecond = strToInt(second);
- if(iSecond > )
- {
- break;
- }
- third.clear();
- for(int k = j + ;k < len - ; ++ k)
- {
- third.push_back(s[k]);
- iThird = strToInt(third);
- if(iThird > )
- {
- break;
- }
- fourth.clear();
- for(int l = k + ;l < len; ++ l)
- {
- fourth.push_back(s[l]);
- }
- iFourth = strToInt(fourth);
- if(iFourth <= )
- {
- result = first + "." + second + "." + third + "." + fourth;
- ans.push_back(result);
- }
- }
- }
- }
- return ans;
- }
- };
我自己写的字符串转数字的方法,尽管知道可以使用sstream转换或者说使用atoi,而且以前都是使用sstream,但是还是想自己动动手玩玩。
lintcode-【中等】恢复IP地址的更多相关文章
- lintcode:恢复IP地址
恢复IP地址 给一个由数字组成的字符串.求出其可能恢复为的所有IP地址. 样例 给出字符串 "25525511135",所有可能的IP地址为: [ "255.255.11 ...
- lintcode - 恢复ip地址
class Solution { public: /* * @param s: the IP string * @return: All possible valid IP addresses */ ...
- 恢复所有情况的ip地址
在终端下输入一串ip字符串如:19219219211,ip地址可能是19.219.219.211.192.19.219.211.192.192.19.211和192.192.192.11. 以下是本人 ...
- IP地址 A\B\C类
互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),缩写为IP地址(IP Address),在Internet上,一种给主机编址的方式.常见的IP地址,分为 ...
- Linux网络管理1---(Linux配置IP地址,ifconfig、配置文件)
1.Linux配置IP 地址 ifconfig命令临时配置IP 地址 ifconfig命令,最常用的功能是查看本机的网络的配置状态(当然也可以配置网络,不过是暂时性的),直接输入ifconfig命令就 ...
- A、B、C、D和E类IP地址
IP地址分为A,B,C,D,E五类. 网络号:用于识别主机所在的网络:主机号:用于识别该网络中的主机. 其中A类分配给政府机关使用,B类地址给大中型企业使用,C类地址给个人使用.这三种是主要的. IP ...
- 【linux】虚拟机安装centos后ping ip地址出现错误:Network is unreachable
来源:https://my.oschina.net/stonezing/blog/515480 方案一: 进入/etc/sysconfig/network-scripts/ 查看这下面的文件 每个人的 ...
- IP地址更改小工具(bat命令)
为了方便切换IP地址,特编制bat命令代码来实现,将以下代码复制到txt文本中,然后保存为bat文件,双击bat文件运行即可. 通过bat命令运行,自动修改IP地址,代码如下: @echo off c ...
- IP地址漂移的实现与原理
当前备份软件比较流行,其中用到的关键技术是IP 地址漂移, 实际上IP地址漂移技术是利用共享的“虚拟”IP地址,当本地进行节点切换与路由切换,使另一端的发送和收方端没有感觉到本地节点地址有变化,保证了 ...
随机推荐
- 深入理解Bindler
Binder模型
- assign、copy 、retain等关键字的含义
assign: 简单赋值,不更改索引计数copy: 建立一个索引计数为1的对象,然后释放旧对象retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1Copy其实是建立了一个 ...
- JSPatch 实现原理详解
原文地址https://github.com/bang590/JSPatch/wiki/JSPatch-%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86%E8%AF%A6%E8 ...
- JSPatch – 动态更新iOS APP
原文:http://blog.cnbang.net/works/2767/ JSPatch是最近业余做的项目,只需在项目中引入极小的引擎,就可以使用JavaScript调用任何Objective-C的 ...
- mybatis——使用mapper代理开发方式
---------------------------------------------------------------generatorConfig.xml------------------ ...
- CefSharp 初用遇到的一些问题及解决方法
之前用WebBrowser,打开网页很卡,但因为并是太要求速度和体验,所以可以显示html就可以了.但是,现在要求显示速度,最主要问题是WebBrowser控件的UserAgent,其实并不完全是IE ...
- Python>>>Flask框架使用之入门
操作平台Windows Python2.7 安装 pip install flask Hello World程序 from flask import Flask app = Flask(__name_ ...
- Oracle 使用SqlPlus管理
Oracle 使用SqlPlus 安装,一键安装,很简单.安装过程,一定要记住密码 一.登陆sqlplus 连接本地服务器,可以直接,打开cmd: 可以直接不用登陆,如果登陆需要输入用户名.密码. s ...
- About SOuP
http://www.soup-dev.com - SOuP的强大我不必多说. - Maya 也可以开发出象houdini这样有趣的节点,这再soup之前是很难想象的.所以说soup的作者Peter的 ...
- 优先级反转实验,使用信号量实现【RT-Thread学习笔记 5】
RTOS中很经典的问题.就是在使用共享资源的时候,优先级低的进程在优先级高的进程之前执行的问题.这里模拟这种情况. 下面的实验模拟了优先级反转的情况: 先定义三个线程: //优先级反转实验 rt_se ...