VIRTUALS

the virtual labs for the virtuals

0%

剑指Offer 05. 替换空格

摘要:
简单语法题。

题目

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

示例 1:

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

限制:

$ 0 <= s 的长度 <= 10000 $


遍历

注意Java语言char数组转String的方法,利用String构造函数:
String​(char[] value, int offset, int count)
可以实现将char数组中部分元素转换成String。
其中,offset 为数组起始位置便宜位置,count 为长度。
如果把char数组整体转换成String,可以:
String.valueOf(chararray)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 执行用时: 0 ms
// 内存消耗: 6.1 MB
class Solution {
public:
string replaceSpace(string s) {
string res;
int len = s.size();

for (int i = 0; i < len; i++) {
if (s[i] == ' ') res += "%20";
else res += s[i];
}

return res;
}
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 执行用时: 0 ms
// 内存消耗: 36.3 MB
class Solution {

public String replaceSpace(String s) {
char[] cc = {'%', '2', '0'};
int len = s.length();
char[] ch = new char[len * 3];

int u = 0;
for (int i = 0; i < len; i++) {
if (s.charAt(i) == ' ') {
for (int j = 0; j < 3; j++) ch[u++] = cc[j];
}
else ch[u++] = s.charAt(i);
}
return new String(ch, 0, u);
}
}