【题解】剑指Offer-05 替换空格

替换空格(剑指Offer-05)

题面

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

示例

1
2
>输入:s = "We are happy."
输出:"We%20are%20happy."

限制

1
0 <= s 的长度 <= 10000

思路

resize一下,然后双指针逆序遍历。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution {
public:
string replaceSpace(string s) {
int count = 0, len = s.size();
for (char c : s)
count += (c == ' ');

s.resize(len + 2 * count);

for(int i=len-1, j=s.size()-1; i<j; i--, j--) {
if (s[i] != ' ')
s[j] = s[i];
else {
s[j-2]='%', s[j-1]='2', s[j]='0';
j -= 2;
}
}
return s;
}
};