leetcode菜鸡斗智斗勇系列(2)--- 把一个ipv4地址转换成一串数字

1.原题:

https://leetcode.com/problems/defanging-an-ip-address/html

这道题自己很简单,正则表达式

Given a valid (IPv4) IP address, return a defanged version of that IP address.spa

defanged IP address replaces every period "." with "[.]".翻译

翻译就是,给出一个ipv4地址,把这个地址中的“.”转换为"[.]",可是做者不是很懂为啥要换成这个。2333code

 

2.解题思路:

其实这道题最简单的办法就是用正则表达式,可是考虑到不少正则表达式的时间复杂度和空间复杂度有点大,咱们此次就用傻办法,反正之后确定会有更合适的正则表达式使用的地方。htm

a.所需的知识点:

substr :http://www.javashuo.com/article/p-ndqnmhbj-dn.html ,由于'.' 是一个char,因此不能直接转换到"[.]",由于是一个string,因此咱们须要用substr。blog

 

b.解题思路:

class Solution {
public:
string defangIPaddr(string address) {
for (int i = address.size() - 2; i >= 0; i--)
if (address[i] == '.')
address = address.substr(0, i) + "[.]" + address.substr(i + 1);
return address;
}
};ip

咱们从倒数第二位开始扫描,由于地址的最后一位确定不是 ‘。’leetcode

咱们一旦发现了一个点,咱们就用substr来重组整个地址,而后输出,很是简单。get

相关文章
相关标签/搜索