剑指Offer——05.替换空格(c语言)

发布时间 2023-04-22 14:04:17作者: 调蓝师
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%的用户