题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
/*length为字符数组string的总容量*/
//利用两个指针从后向前遍历,时间复杂度为O(N)
class Solution {
public:
void replaceSpace(char *str,int length) {
if(str==nullptr||length<=0)
return;
int originallength=0;//字符串实际容量
int numberofblank=0;
char* s=str; //保存str数组起始位置,后面还要用到
while(*s!='\0')
{
++originallength;
if(*s==' ') ++numberofblank;
s+=1;
}
int newlength=originallength+2*numberofblank;
if(newlength>length) return;
int indexoforiginal=originallength;
int indexofnew=newlength;
while(indexoforiginal>=0&&indexofnew>indexoforiginal)
{
if(*(str+indexoforiginal)==' ')
{
*(str+indexofnew--)='0';
*(str+indexofnew--)='2';
*(str+indexofnew--)='%';
}
else
*(str+indexofnew--)=*(str+indexoforiginal);
--indexoforiginal;
}
}
};

3559

被折叠的 条评论
为什么被折叠?



