2019-06-02剑指。替换空格

2019-06-02  本文已影响0人  mztkenan

难得因为字符串写一次c++,真的有些麻烦。对于java中是指传递。只有c++中有指针地址。

class Solution {
public:
    void replaceSpace(char *str,int length) {
        int cnt=0;
        for(int i=0;i<length+1;i++){
            if(str[i]==' ')cnt++;
        }
        int L=length+2*cnt;
        str[L]='\0';
        int ne=L-1;
        int e=length-1;
        while(e>=0){
            if(str[e]!=' '){
                str[ne--]=str[e--];
            }
            else{
                str[ne--]='0';
                str[ne--]='2';
                str[ne--]='%';
                e--;
            }
        }
    }
};

注意c风格的字符串是这么写的。c里创建对象是不用new的。这题的变种就是两个排序数组合并到一起。

int main()
{
    char s[]="  ";
    Solution t;
    t.replaceSpace(s,2);
    cout<<s;
    return 0;
}
上一篇 下一篇

猜你喜欢

热点阅读