请实现一个函数,把字符串 s 中的每个空格替换成”%20”。
示例 1: 输入:s = “We are happy.” 输出:”We%20are%20happy.”
class Solution {
public:
std::string replaceSpace(std::string s) {
int oldsize = s.size(), cnt =0;
for (char ch:s) if (ch==' ') cnt++; // 统计空格总数
s.resize(oldsize + 2*cnt); // 扩充字符串s,每个空格替换成"%20"之后的大小
int newsize = s.size();
int left= oldsize-1, right = newsize-1;
for (;left< right; left--, right--){
if (s[left]!=' ') s[right] = s[left];
else {
s[right] = 0, s[right-1] = 2, s[right-2] ='%';
right-=2;
}
}
return s;
}
};