剑指 Offer 05. 替换空格
难度简单
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = “We are happy.”
输出:“We%20are%20happy.”
限制:
0 <= s 的长度 <= 10000
思路1.0:
(1)统计空格数,得出string最终长度
(2)从后往前构造string,省去数次”把’ ‘替换成’%20’后进行移位排序的成本“
代码1.0:
class Solution {
public:
string replaceSpace(string s) {
int num = 0;
int lenOld = s.size();
for (int i = 0; i < lenOld; ++i) {
if (s[i] == ' ') ++num;
}
s.append(string(2 * num, ' '));
for (int i = s.size() - 1, j = lenOld - 1; i >= 0;) {
if (s[j] == ' ') {
s[i--] = '0';
s[i--] = '2';
s[i] = '%';
}
else {
s[i] = s[j];
}
--i;
--j;
}
return s;
}
};