替换空格
题目来源:牛客网——替换空格
题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
解题思路:
从前往后遍历记录空格数目count;
从后往前 替换空格
代码:
class Solution {
public:
void replaceSpace(char *str,int length) {
int count = 0; //空格数目
// 从前往后遍历空格数目
for(int i = 0; i < length; i++){
if(str[i] == ' ')
count ++;
}
// 从后往前替换空格
for(int i = length-1; i>=0; i--){
// 如果不是空格,则后移
if(str[i] != ' ')
str[i + count*2] = str[i];
//若为空格,则插入%20
else{
count --;
str[i + count*2] = '%';
str[i + count*2 + 1] = '2';
str[i + count*2 + 2] = '0';
}
}
}
};