1108. IP 地址无效化

给你一个有效的 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 地址

来源:力扣(LeetCode)

1. C++

1.1. 收获

  1. 了解string类型
  2. string的replace操作:string& replace(size_t pos, size_t len, const char* s);

1.2. 我的解答

用时:4ms

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution {
public:
string defangIPaddr(string address) {
int point[3]={0},j=0;
for(int i=0;i<=address.length()-1;i++)
{
if (address[i]=='.')
{
point[j]=i;
j++;
}

}
address=address.replace(point[0],1,"[.]");
address=address.replace(point[1]+2,1,"[.]");
address=address.replace(point[2]+4,1,"[.]");
return address;
}
};

1.3. 最佳答案

用时:0ms

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public:
string defangIPaddr(string address) {
string result = "";
for(int i = 0; i < address.size(); ++i){
if(address[i] != '.'){
result += address[i];
}else{
result += "[.]";
}
}
return result;
}
};

1.4. 对比收获

我的思路是:先一遍循环找到’.’的位置,再把’.’替换为”[.]”
最佳思路是:以空间换时间,用一个string接address的字符,有’.’就替换

2. Python

2.1. 收获

  1. 了解python str的replace操作

    2.2. 我的解答

    用时:28ms
1
2
3
class Solution:
def defangIPaddr(self, address: str) -> str:
return address.replace(".","[.]");

2.3. 最佳答案

用时:16ms

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution:
def defangIPaddr(self, address: str) -> str:

b=''
for i in address:
if i!='.':
b=b+i
else:
b=b+'[.]'



return b

2.4. 对比收获

还是上面C++的思路最省时