C++ 剑指offer 替换空格

替换空格

http://www.nowcoder.com/questionTerminal/4060ac7e3e404ad1a894ef3e17650423

char *str => str!=nullptr
char str[] => str!=NULL



class Solution {
public:
    void replaceSpace(char str[],int length) {
        if(str == NULL && length<=0){
            return;
        }

        int originLength = 0;
        int numofbank = 0;
        int i = 0;
        while(str[i]!='\0'){
            ++ originLength;
            if(str[i]==' '){
                ++ numofbank;
            }
            ++ i;
        }
        
        int curlength = originLength + numofbank*2;
        
        if(curlength>length){
            return;
        }
        
        int indexOrigin = originLength;
        int indexCur = curlength;
        while(indexOrigin>=0 && indexCur >indexOrigin){
            if(str[indexOrigin]== ' '){
                str[indexCur--] = '0';
                str[indexCur--] = '2';
                str[indexCur--] = '%';
            }
            else{
                str[indexCur--] = str[indexOrigin];
            }
            -- indexOrigin;
        }
    }
};

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-27 15:19
简历上能写3个月吗?
码农索隆:大胆写,主要你能把实习经历包装好,可以看一下我这篇帖子https://www.nowcoder.com/share/jump/4888395581180798063
点赞 评论 收藏
分享
06-02 15:17
门头沟学院 Java
心爱的idea:怎么会呢 应该是打招呼有问题 问就说实习6个月全国可飞随时到岗
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务