题目描述
请实现一个函数,把字符串中的每个空格替换成"%20"。
你可以假定输入字符串的长度最大是 1000。
注意输出字符串的长度可能大于 1000。
样例
输入:“We are happy.”
输出:“We%20are%20happy.”
方法:在原字符串的基础上修改
class Solution {
public:
string replaceSpaces(string &str) {
int sum=0;
int len=str.length();
for(int i=0;i<str.length();i++){
if(str[i]==' ') sum++;
}
str.resize(len+sum*2);
int i=len-1,j=len+sum*2-1;
while(i>=0){
if(str[i]==' '){
str[j--]='0';
str[j--]='2';
str[j--]='%';
}else{
str[j--]=str[i];
}
i--;
}
return str;
}
};
总结
首先计算出最终的字符串长度,提前resize空间;
双指针,从后往前遍历,i指向原字符串最后一个,j指向resize后的字符串的最后一个。