0%

剑指 Offer 05. 替换空格

剑指 Offer 05. 替换空格

遍历替换
1
2
3
4
5
6
7
8
9
10
11
12
class Solution {
public:
string replaceSpace(string s) {
string ret = "";
for(auto& ch : s)
if(ch == ' ')
ret += "%20";
else
ret += ch;
return ret;
}
};
原地替换
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution {
public:
string replaceSpace(string s) {
int len = s.size();
int spaceCount = 0;
for(auto& ch : s)
if(ch == ' ')
++spaceCount;
s.resize(s.size() + 2 * spaceCount);
for(int i = len - 1,j = s.size() - 1; i >= 0; --i, --j)
{
if(s[i] != ' ')
s[j] = s[i];
else
{
s[j] = '0';
s[j - 1] = '2';
s[j - 2] = '%';
j -= 2;
}
}
return s;
}
};