请实现一个函数,把字符串 s 中的每个空格替换成"%20"
class Solution {
public:
string replaceSpace(string s) {
//快慢指针从头遍历 每遇到一个空格 就让快指针多走两步
int fast = 0;
int slow = 0;
for (; slow < s.size(); slow++)
{
if (s[slow] == ' ')
{
fast += 3;
}
else
{
fast++;
}
}
s.resize(fast + 1);
//此时的fast指向扩充后字符串的末尾 low指向未扩充的末尾
//让两个指针从后往前遍历 每遇到一个空格就往fast指针的位置从后往前写02%
for (; slow >= 0; slow--)
{
if (s[slow] == ' ')
{
s[fast--] = '0';
s[fast--] = '2';
s[fast--] = '%';
}
else
{
s[fast--] = s[slow];
}
}
return s;
}
string replaceSpace(string s) {
for (int i = 0; i < s.size(); i++)
{
if (s[i] == ' ')
{
s.replace(i, 1, "%20");
}
}
return s;
}
};