力扣链接
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = “We are happy.”
输出:“We%20are%20happy.”
限制:
0 <= s 的长度 <= 10000
另外建立一个字符串,然后遍历原字符串
优点:简单
缺点:需要额外空间
从后面开始:时间复杂度o(n)
只需要遍历原数组一遍
从前面开始:时间复杂度o(n^2)
遍历原数组一遍,向后移位需要再遍历一遍
class Solution {
public:
string replaceSpace(string s) {
int oldsize=s.size();
int newsize=s.size();
for(int i=0;i<s.size();i++)
{
if(s[i]==' ')
newsize+=2;
}
s.resize(newsize);
for(int i=oldsize-1,j=newsize-1;i<j;)
{
if(s[i]!=' ')
{
s[j--]=s[i--];
}
else
{
s[j--]='0';
s[j--]='2';
s[j--]='%';
i--;
}
}
return s;
}
};