题解 | #替换空格#
替换空格
https://www.nowcoder.com/practice/0e26e5551f2b489b9f58bc83aa4b6c68?tpId=265&tqId=39209&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3Fpage%3D1%26tpId%3D13%26type%3D265&difficulty=undefined&judgeStatus=undefined&tags=&title=
从后往前替换,避免每次都要挪动后面的元素
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return string字符串
*/
string replaceSpace(string s) {
if (s.empty()) {
return "";
}
int blank = 0;
int old_size = s.size();
for (const auto &it : s) {
if (it == ' ') {
++blank;
}
}
s.resize(old_size + 2 * blank);
int front = old_size - 1, back = s.size() - 1;
while (front >= 0 && front < back) {
while (s[front] != ' ') {
s[back] = s[front];
--back;
--front;
}
--front;
s[back--] = '0';
s[back--] = '2';
s[back--] = '%';
}
return s;
}
};