例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy
解题思路如下:
1、从左到右遍历出出空格的位置(i);
2、将空格位置以后的字符向右移动两个字节;
3;向右移动的顺序为,从右到左(从后到前);
4、数据移动结束后,从空格位置(i)开始连着的三个位置赋值(”%20“);
5、赋值结束后,继续检测空格的位置,移动和赋值还按前面的步骤进行;
6、循环进行,直到所有的的空格均被替换掉;
函数块如下:
class Solution {
public:
void replaceSpace(char *str,int length) {
int i;
for(i=0;i<length;i++)
{
if(str[i]==' ')
{
length=length+2;
int j=length-1;
while(j-2>i)
{
*(str+j)=*(str+j-2);
j--;
}
*(str+i)='%';
*(str+i+1)='2';
*(str+i+2)='0';
}
}
}
};