1108-IP 地址无效化

Raphael Liu Lv10

给你一个有效的 IPv4 地址 address,返回这个 IP
地址的无效化版本。

所谓无效化 IP 地址,其实就是用 "[.]" 代替了每个 "."

示例 1:

**输入:** address = "1.1.1.1"
**输出:** "1[.]1[.]1[.]1"

示例 2:

**输入:** address = "255.100.50.0"
**输出:** "255[.]100[.]50[.]0"

提示:

  • 给出的 address 是一个有效的 IPv4 地址

方法一:直接遍历

思路与算法

按照题目要求,依次将字符串 address 中 `.’ 替换为 “[.]” 即可。

代码

[sol1-Python3]
1
2
3
class Solution:
def defangIPaddr(self, address: str) -> str:
return address.replace('.', '[.]')
[sol1-Java]
1
2
3
4
5
class Solution {
public String defangIPaddr(String address) {
return address.replace(".", "[.]");
}
}
[sol1-C++]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public:
string defangIPaddr(string address) {
string ans;
for (auto & c : address) {
if (c == '.') {
ans.append("[.]");
} else {
ans.push_back(c);
}
}
return ans;
}
};
[sol1-C#]
1
2
3
4
5
public class Solution {
public string DefangIPaddr(string address) {
return address.Replace(".", "[.]");
}
}
[sol1-C]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
char * defangIPaddr(char * address) {
int len = strlen(address);
int pos = 0;
char * res = (char *)malloc(sizeof(char) * (len + 7));
for (int i = 0; i < len; i++) {
if (address[i] == '.') {
pos += sprintf(res + pos, "%s", "[.]");
} else {
res[pos++] = address[i];
}
}
res[pos] = '\0';
return res;
}
[sol1-JavaScript]
1
2
3
var defangIPaddr = function(address) {
return address.replaceAll('\.', '[.]');
};
[sol1-Golang]
1
2
3
func defangIPaddr(address string) string {
return strings.ReplaceAll(address, ".", "[.]")
}

复杂度分析

  • 时间复杂度:O(n),其中 n 为字符串 s 的长度。需要遍历一遍字符串即可。

  • 空间复杂度:O(1)。除返回值外,不需要额外的存储空间。

 Comments
On this page
1108-IP 地址无效化