title: 剑指Offer 05.替换空格(c语言)
请实现一个函数,把字符串 s
中的每个空格替换成"%20"。
示例1:
输入:s = "We are happy."
输出:"We%20are%20happy."
限制:
$$
0 \leqslant s的长度 \leqslant 10000
$$
代码如下:
char* replaceSpace(char* s){
if(NULL == s){
return NULL;
}
int len = strlen(s);
int cnt_blank = 0;
for(int i=0; i<len; ++i)
{
if(' ' == s[i]){
++cnt_blank;
}
}
int new_len = len+2*cnt_blank+1;
char *ret = (char*)malloc(new_len*sizeof(char));
for(int j=len-1, k=new_len-2; j>=0&&k>=0; --j,--k)
{
if(' ' == s[j]){
ret[k--] = '0';
ret[k--] = '2';
ret[k] = '%';
} else{
ret[k] = s[j];
}
}
ret[new_len-1] = '\0';
return ret;
}
执行结果:
通过
显示详情
执行用时:0 ms, 在所有 C 提交中击败了100.00%的用户
内存消耗:5.3 MB, 在所有 C 提交中击败了97.30%的用户
标签:Offer,--,05,ret,空格,int From: https://www.cnblogs.com/blue-Suri/p/17342965.html