題目:請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù)澜公,把字符串 s 中的每個(gè)空格替換成"%20"。
示例:
// 輸入:s = "We are happy."
// 輸出:"We%20are%20happy."
限制:0 <= s 的長(zhǎng)度 <= 10000
自己實(shí)現(xiàn)
思路一搀暑、正則
自己第一個(gè)想到的就是使用正則去匹配,然后結(jié)合字符串的replace方法
var replaceSpace = function (s) {
return s.replace(/\s/g,"%20");
};
這個(gè)解法也是看的別人的,我對(duì)正則這塊不太懂跃捣,后續(xù)還需加強(qiáng)這方面
以上算法的時(shí)間復(fù)雜度和空間復(fù)雜度分析如下:
- 時(shí)間復(fù)雜度:O(1)。
- 空間復(fù)雜度:O(1)夺蛇。
思路二疚漆、遍歷
js的字符串也可以用for循環(huán)
,可以遍歷當(dāng)前字符串,判斷每一項(xiàng)是否是空格娶聘,不是則累加闻镶,是則替換成%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