「LeetCode」1108-IP 地址无效化

143 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第23天,点击查看活动详情

一.题目:

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 地址

二、思路分析:

今天的题目非常简单,因为题目给定的IP地址是有效的,即不用我们自己去判断地址是否有效,所以难度会降低很多,且题目要求使IP地址无效化,唯一做法就是替换地址中的点,所以这道题目我使用了三种方法来使IP地址无效化:

  1. 第一种方法就是利用字符串本身的API去操作字符串,让字符串按照特定的模式去创建成数组的形式,随后用[.]将这些数组元素结合成字符串就完成了相关操作。
  2. 第二种方法就是使用replaceAll这个API去进行字符串的相关元素替换操作,这种方法就是提用到了正则的特性去解决问题,通常替换操作都可以利用正则去完成。
  3. 第三种方法就是先创建一个空字符,然后去遍历IP地址的相关字符串,如果没有碰到点就进行叠加操作,反之去进行增加[.]操作。

三、代码:

function defangIPaddr(address: string): string {
    return address.split('.').join('[.]')
};

function defangIPaddr(address: string): string {
    return address.replaceAll('.','[.]')
};

function defangIPaddr(address: string): string {
    let str = '';
    for(let i=0 ; i<address.length ; i++){
        if(address[i] !==  '.'){
            str += address[i];
        }else{
            str += '[.]'
        }
    }
    return str
};

四、总结:

今天的这道每日一题非常简单,所以我写了三种方法来完善自己的相关知识,也希望如果大家有更好的方法可以分享出来!