
新建一个字符串,如果是空格就增加%20,否则增加原字符。
string replaceSpace(string s) {
int len=s.length();
string result;
for(int i=0;i<len;i++)
{
if(s[i]!=' ')
{
result=result+s[i];
}
else
{
result=result+"%20";
}
}
return result;
}
修改 首先不用求长度 可以用for(auto c : s)遍历,能用+=不用r=r+s
修改后的代码
string replaceSpace(string s) {
//int len=s.length();
string result;
for(auto c : s)
{
if(c!=' ')
{
result+=c;
}
else
{
result+="%20";
}
}
return result;
}
不增加额外空间的方法 从后往前替换 如果是空格 就替换成%20 注意使用自减运算符
class Solution {
public:
string replaceSpace(string s) {
int spacenum=0;
int len=0;
for(auto c:s)
{
if(c==' '){spacenum++;}
len++;
}
int newlen=len+2*spacenum-1;
for(int i=0;i<spacenum;i++){s+="00";}
while(newlen>=0)
{
if(s[len-1]==' ')
{
s[newlen--]='0';
s[newlen--]='2';
s[newlen--]='%';
}
else
{
s[newlen--]=s[len-1];
}
len--;
}
return s;
}
};

被折叠的 条评论
为什么被折叠?



