替换空格

剑指offer-牛客网

Posted by Y. on October 25, 2018

替换空格

题目描述

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
时间限制:1秒 空间限制:32768K

思路

新建字符串,遍历str,依次添加,空格则替换为“%20”。

代码

function replaceSpace(str)
{
    // write code here
    var result = ""
    for(var i = 0; i < str.length; i++) {
        if(str.charAt(i) == " ") {
            result += "%20";
        }else {
            result += str.charAt(i);
        }
    }
    
    return result;
}

运行时间:15ms
占用内存: 5304k

问题

  1. 字符串只读,不可以像数组一样赋值
  2. 占用内存过多

最优解题思路

replace函数

代码

function replaceSpace(str)
{
    return str.replace(/\s/g,'%20')
}

运行时间:0毫秒
占用内存:0k

注:

  1. replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。