题目表述
请实现一个函数,把字符串 s
中的每个空格替换成"%20";
解法分析
- 统一扩容。
- 双指针从后面遍历+赋值,降低时间复杂度。第一个指针指向旧字符串结尾,第二个指针指向新字符串结尾。
代码
class Solution {
public:
string replaceSpace(string s) {
int count = 0;
for(int i=0;i<s.size();i++){
\
if(s[i]==' '){
count++;
}
}
int soldsize = s.size();
s.resize(soldsize+2*count);
int snewsize = s.size();
int j = snewsize-1;
for(int i = soldsize-1; i >= 0; i--){
if(s[i] == ' '){
s[j] = '0';
s[j-1] = '2';
s[j-2] = '%';
j -= 3;
}else{
s[j] = s[i];
j--;
}
}
return s;
}
};