# 替换空格(剑指Offer 05)
# 题目
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
# 示例
输入:s = "We are happy."
输出:"We%20are%20happy."
# 限制
- 0 <= s 的长度 <= 10000
# 算法
# replaceAll()
export const replaceSpace = (s) => {
return s.replaceAll(" ", "%20");
};
1
2
3
2
3
# 正则
export const replaceSpace = (s) => {
return s.replaceAll(/ /g, "%20");
};
1
2
3
2
3
# split() + join()
export const replaceSpace = (s) => {
return s.split(" ").join("%20");
};
1
2
3
2
3
# 数组
export const replaceSpace = (s) => {
const arr = [];
for (let i = 0; i < s.length; i++) {
if (s[i] === " ") arr.push("%20");
else arr.push(s[i]);
}
return arr.join("");
};
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 指针
export const replaceSpace = (s) => {
let replaceString = "";
let i = 0;
while (i < s.length) {
replaceString += s[i] === " " ? "%20" : s[i];
i++;
}
return replaceString;
};
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9