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

1.原题:

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

这道题本身很简单,

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

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

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

2.解题思路:

其实这道题最简单的办法就是用正则表达式,但是考虑到很多正则表达式的时间复杂度和空间复杂度有点大,我们这次就用傻办法,反正以后肯定会有更合适的正则表达式使用的地方。

a.所需的知识点:

substr :https://www.cnblogs.com/xzxl/p/7243490.html ,因为'.' 是一个char,所以不能直接转换到"[.]",因为是一个string,所以我们需要用substr。

 

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

我们从倒数第二位开始扫描,因为地址的最后一位肯定不是 ‘。’

我们一旦发现了一个点,我们就用substr来重组整个地址,然后输出,非常简单。

原文地址:https://www.cnblogs.com/cptCarlvon/p/12052814.html