题目:请实现一个函数,把字符串 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
};
效果如下
思路三 split+join
话不多说,直接看代码
var replaceSpace = function(s) {
return s.split(" ").join("%20");
};
效果如下