版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhaohaibo_/article/details/85543779
请实现一个函数,把字符串中的每个空格替换成"%20"。
你可以假定输入字符串的长度最大是1000。
注意输出字符串的长度可能大于1000。
样例
输入:"We are happy."
输出:"We%20are%20happy."
不开额外空间的做法会使字符串长度总在变化,会比较麻烦。
class Solution {
public:
string replaceSpaces(string &str) {
string::size_type pos;
string s1 = " ", s2 = "%20";
pos=str.find(s1,0);
while(pos!=string::npos){
str.replace(pos,1,s2);
pos = str.find(s1,pos+1);
}
return str;
}
};
更好的做法是新开一个用于记录答案的字符串,原字符串的长度就不再会变化了
class Solution {
public:
string replaceSpaces(string &str) {
string ans;
for(auto x : str){
if(x == ' ') ans += "%20";
else ans += x;
}
return ans;
}
};