首页 > 技术文章 > 剑指 Offer 05. 替换空格

isviolet 2021-03-03 19:52 原文

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。

示例 1:

输入:s = "We are happy."
输出:"We%20are%20happy."

限制:

0 <= s 的长度 <= 10000

我的解答

class Solution {
    public String replaceSpace(String s) {
        return s.replace(" ", "%20");
    }
}

这道题还是很简单的,使用replace或者遍历整个字符串,每到空格就添加%20即可。
不过在做完后发现,replace和replaceAll方法具有差别,replace是击败100%的时间,超过四十多的内存使用;replaceAll超过时间百分之10不到,占用内存50多。
查看文章发现replaceAll比replace有更多的功能,耗时也更大。

仍有接近4倍的耗时,具体到单个replace()就是100倍的耗时。
随着正则表达式本身的膨胀,replaceAll()的耗时也在增加。
以上已经将26个字母都涵盖到,依然没有达到临界点,所以基本上可以得到结论,对于简单型的替换而言,单以性能考虑,显然replace()是更好的选择。
————————————————
版权声明:本文为CSDN博主「00甘道夫00」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhanglianyu00/article/details/78296277

推荐阅读