443_StringCompression - a920604a/leetcode GitHub Wiki


title: 443. String Compression tags: categories: leetcode comments: false

solution

class Solution {
public:
    int compress(vector<char>& chars) {
        int times=1, n=chars.size();
        if(n==1) return 1;
        char cur = chars[0];
        string ret;
        for(int i =1;i<n ; ++i){
            if(chars[i] != cur){
                if(times>1){
                    ret+=cur;
                    ret+=to_string(times);
                }
                else ret+=cur;
                cur=chars[i];
                times=1;

            }
            else times++;
        }
        ret+=cur;
        if(times>1) ret+=to_string(times);

        chars.resize(ret.size());
        for(int i=0;i<chars.size() ; ++i){
            chars[i] = ret[i];
        }
        return ret.size();
    }
};

analysis

  • time complexity O(n)
  • space complexity O(n)
⚠️ **GitHub.com Fallback** ⚠️