题解 | #替换空格#
// 法一:最省空间和高效,扩容后原地修改
class Solution {
public:
string replaceSpace(string s) {
int count = 0;
int len = s.size();
// 空格个数
for (char c : s) {
if (c == ' ') count++;
}
// 根据空格个数扩容
s.resize(len + 2 * count);
// 从后向前修改
int j = s.size() - 1;
for (int i = len - 1; i < j; i--) {
if (s[i] != ' ') {
s[j--] = s[i];
} else {
s[j--] = '0';
s[j--] = '2';
s[j--] = '%';
}
}
return s;
}
};