原文地址:https://www.jianshu.com/p/bc3f24f987f8
时间限制:1秒 空间限制:32768K
题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
我的代码
class Solution {
public:
void replaceSpace(char *str,int length) {
//length为分配给str的总长度值
if(str==nullptr || length<1)
return;
int strLen=0,spaceNumber=0;
while(*(str+strLen)!='\0'){
if(*(str+strLen)==' ')
spaceNumber++;
strLen++;
}
int oldLen=strLen,newLen=strLen+2*spaceNumber;
if(newLen+1>length)
return;
while(oldLen>=0 && newLen>oldLen){
if(str[oldLen]==' '){
str[newLen--]='0';
str[newLen--]='2';
str[newLen--]='%';
}
else
str[newLen--]=str[oldLen];
oldLen--;
}
while(oldLen>=0){
str[newLen--]=str[oldLen--];
}
return;
}
};
运行时间:5ms
占用内存:588k