2020-03-16 刷题1(字符串)

01.06 字符串压缩

标签:字符串,内存
题目其实很简单,用模拟法模拟字符串的压缩过程即可。但是我提交了三次,因为爆内存了。看了评论区才发现一个隐藏的坑:

c_s = c_s + c + to_string(cnt) // 会给c_s + c + to_string(cnt) 开辟新的内存来存放,如果字符串很长,就会爆内存
c_s += c + to_string(cnt) // 相当于在c后面append,不会开辟新的内存

所以,以后能用+= 就不要用= ...+...了吧

public:
    string compressString(string S) {
        if(S.size() == 0) return S;
        string c_s;
        char c = S[0];
        short cnt = 1;
        for(int i = 1; i = S.size()) return S;
        return c_s;
    }
};

你可能感兴趣的:(2020-03-16 刷题1(字符串))