【题目】请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
【来源】力扣
【示例】
【解题思路】
- 计算字符串中的空格个数
- 扩充数组大小,大小为替换空格后字符串的大小
- 使用双指针法,分别指向旧长度的末尾、新长度的末尾;从后往前替换(避免移动元素的麻烦)
【C++】
string replaceSpace(string s){
int num = 0;//计算空格数;
for (unsigned int i = 0;i < s.size();i++){
if(s[i] == " "){
num++;
}
}
int oldSize = s.size();
int newSize = s.size() + num * 2;
s.resize(newSize);
for(int i = newSize - 1,j = oldSize - 1;j < i;i--,j--){
if(s[j] != ' '){
s[i] = s[j];
}else{
s[i] = '0';
s[--i] = '2';
s[--i] = '%';
}
}
return s;
}