题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy
思路
记录出现的空格数count,从后向前遍历,没遇到空格之前的字符整体后移count*2个位置,直到遇到空格填满%20,下一次字符串的整体移动变成(count-1)*2个位置。
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 j = length-1;j>=0;j--)
{
if(str[j]!=' ')
{
str[j+count*2] = str[j];
}
else
{
count--;
str[j+count*2] = '%';
str[j+count*2+1] = '2';
str[j+count*2+2] = '0';
}
}
}
};