剑指 Offer 05. 替换空格

94 阅读1分钟

题目

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

示例 1:

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

 

限制:

0 <= s 的长度 <= 10000

解析

这题比较简单, 直接遍历字符串 s 的每一个字符,当字符为空格时替换成 %20

注意: 由于字符串是不可变的,所以需要用新的字符串 res 来保存遍历过程中的每一个字符,最终返回 res 即可。

参考代码

遍历

/**
 * @param {string} s
 * @return {string}
 */
var replaceSpace = function(s) {
    // 保存返回结果
    let res = '';
    
    // 遍历 s 的每一个字符
    for (let char of s) {
        if (char != ' ') {
            res += char
        } else {
            res += '%20'
        }
    }

    return res;
};

正则

/**
 * @param {string} s
 * @return {string}
 */
var replaceSpace = function(s) {
    // 匹配空格的正则, 因为是全局替换,使用g 
   let spaceRE = /\s/g
   return s.replace(spaceRE, '%20');
};

题目链接

剑指 Offer 05. 替换空格