请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
首先统计字符串中空格的个数,然后使用resize函数将字符串大小扩大到需要的大小。
然后使用双指针法,从后往前遍历字符串。
i从最开始的字符串从后往前遍历,j则从扩充之后的字符串从后往前遍历。
class Solution {
public:
string replaceSpace(string s) {
int count=0;
int len = s.length();
for(int i =0 ;i< len ; i++)//统计空格的个数
{
if(s[i]==' ')
{
count++;
}
}
s.resize(s.size() + count * 2);
int j = s.size()-1;
for(int i= len-1;i>=0;i--)
{
if(s[i]!=' ')
{
s[j--] = s[i];
}
else
{//!!!!j移动三次!!!!
s[j--]='0';
s[j--]='2';
s[j--]='%';
}
}
return s;
}
};