替换空格(剑指Offer-05)
题面
请实现一个函数,把字符串
s
中的每个空格替换成"%20"。
示例
1输入:s = "We are happy." 2输出:"We%20are%20happy."
限制
10 <= s 的长度 <= 10000
思路
resize一下,然后双指针逆序遍历。
代码
1class Solution {
2public:
3 string replaceSpace(string s) {
4 int count = 0, len = s.size();
5 for (char c : s)
6 count += (c == ' ');
7
8 s.resize(len + 2 * count);
9
10 for(int i=len-1, j=s.size()-1; i<j; i--, j--) {
11 if (s[i] != ' ')
12 s[j] = s[i];
13 else {
14 s[j-2]='%', s[j-1]='2', s[j]='0';
15 j -= 2;
16 }
17 }
18 return s;
19 }
20};