LeetCode刷题记录(三十七):IP 地址无效化

81 阅读2分钟

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

IP 地址无效化

image.png

题目解析

题目难度:简单

题目素材解析

根据题目的描述和代码模板来看,只提供了一个素材:

那就是一个IPv4的地址,绝对是一个有效的地址。

比如127.0.0.1,又比如192.168.0.1等等

我的解读

这道题简直了,我读了好几遍,都不敢相信竟然有这么简单的一道题。

就是将一个ip地址中的字符.替换成[.]

真是直白,特地读了几遍题目,但确实是这个样子。

解题思路

要解决这个问题,没什么花里胡哨的。

每一个编程语言中都有替换字符串的方法,就比如Java的replace方法。

使用这个方法就可以实现全部.的替换。

当然了,如果还想提升一下,也可以细看一下replace的源码。

replace的源码

image.png

通过这个方法,我们看的出来首先要确定传入的两个字符不相等;如果相等就直接返回原值即可。

然后在不相等的情况下,再次判断oldChar值是否大于原值的长度。

如果没有超过,则进入while循环中,判断原字符串中是否含有oldChar,如果含有则可以进行下一步。

如果根本没有这个值,则进入不了下面的if条件,即返回原值。

如果前面的条件都满足,则通过一个循环将原字符串放入char数组中。

最后通过一个循环,替换匹配的值。

一顿操作,发现不对

刚才是char类型的参数,其实我们传入的字符串是通过下面的这个方法传入的。

image.png

通过此方法通过正则来处理,然后通过replaceAll参数来处理的。

大家可以自行去看与喜爱replaceAll方法,很容易看懂。

代码

class Solution {
    public String defangIPaddr(String address) {
        return address.replace(".", "[.]");
    }
}

执行结果

执行结果没有什么可说的,这道题实在是太基础了。

image.png