持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第23天,点击查看活动详情
前言
今天的题目为简单,可能是有史以来最简单的一道题,甚至有内置的API就可以完成,本文提供了三种解法进行解答。
每日一题
今天的题目是 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 地址
题解
replace
JS 内置了 replace 方法,并且我们可以通过正则表达式来进行全部匹配,方法默认是只匹配第一个字符串,但是使用:
address.replace(/需要转化的字符串/g,'转化后的字符串')
就能够做到全局匹配,注意碰到内置的一些符号需要用 '' 转义符进行转义
function defangIPaddr(address: string): string {
return address.replace(/\./g,'[.]')
};
split + join
还有另一种 API 解法就是使用 split + join 组合,先是通过 . 进行字符串分割,然后使用 [.] 组装回来,就能够得到题目需要的答案了。
function defangIPaddr(address: string): string {
return address.split('.').join('[.]')
};
数组简单模拟
使用数组来进行模拟,循环遍历题目给的字符串,如果碰到不为 . 的字符就将它加入数组,碰到 . 就将 [.] 加入数组,这样一直到最后,将数组拼接起来,就能够得到题目所需要的答案。
function defangIPaddr(address: string): string {
let arr:any[] = []
for(let ch of address){
if(ch == '.'){
arr.push('[.]')
}else{
arr.push(ch)
}
}
return arr.join('')
};