实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = “We are happy.”
输出:“We%20are%20happy.”
方法: 时间复杂度优先 ,重新创建一个char数组,其长度是原来的长度加上空格的个数乘以2,一个一个字符向新的数组中进行复制
碰到的问题: 刚开始时将长度设置为了原长度加上空格个数乘以3,哨兵后移了三个位置,忘记了忽略了替换后空格的位置,通过Debug查看找到了问题,将长度增加改为了空格个数的2倍,哨兵值后移2个位置。
solution:
class Solution {
public:
string replaceSpace(string s) {
if(s.empty())
return "";
int length = s.length();
int newLenght=length,spaceCount=0;
for(int i=0;i<length;i++){
if(s[i] == ' ')
spaceCount++;
}
newLenght += (spaceCount*2);
char string2[newLenght+1];
for(int i=0,j=0;i<length;i++){
if(s[i] == ' '){
string2[i+j*2] = '%';
string2[i+j*2+1] = '2';
string2[i+j*2+2] = '0';
j++;
} else{
string2[i+j*2] = s[i];
}
}
string2[newLenght] = '\0';
return string2;
}
};