# 替换空格(剑指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

# 正则

export const replaceSpace = (s) => {
	return s.replaceAll(/ /g, "%20");
};
1
2
3

# split() + join()

export const replaceSpace = (s) => {
	return s.split(" ").join("%20");
};
1
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

# 指针

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