【算法】替换空格

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

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

限制:0 <= s 的长度 <= 10000

自己实现
思路一、正则

自己第一个想到的就是使用正则去匹配,然后结合字符串的replace方法

var replaceSpace = function (s) {
    return s.replace(/\s/g,"%20");
};

这个解法也是看的别人的,我对正则这块不太懂,后续还需加强这方面
以上算法的时间复杂度和空间复杂度分析如下:

  • 时间复杂度:O(1)。
  • 空间复杂度:O(1)。
思路二、遍历

js的字符串也可以用for循环,可以遍历当前字符串,判断每一项是否是空格,不是则累加,是则替换成%20再累加

var replaceSpace = function(s) {
    let str = ''
    for(let i = 0;i < s.length;i++) {
        if(s[i] == ' '){
            str += '%20'
        }else {
            str += s[i]
        }
    }
    return str
};

效果如下


image.png
思路三 split+join

话不多说,直接看代码

var replaceSpace = function(s) {
      return s.split(" ").join("%20");
};

效果如下


image.png

你可能感兴趣的:(【算法】替换空格)