题目
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
输入:s = “We are happy.”
输出:“We%20are%20happy.”
思路:先计算空格个数,然后扩容,然后从后往前依次平移string的元素,遇到空格就把 0 2 % 插进去。知道后面一个指针等于前面一个指针。
class Solution {
public:
string replaceSpace(string s)
{
int count = 0;
int len = s.size();
for(int i = 0;i < len;i++)
{
if(s[i] == ' ') count++;
}
if(count == 0) return s;
s.resize(len + 2*count);
for(int i = len - 1, j = s.size() - 1; j > i;i--,j--)
{
if(s[i] != ' ')
{
s[j] = s[i];
}
else
{
s[j] = '0';
s[j-1] = '2';
s[j-2] = '%';
j = j - 2;
}
}
return s;
}
};