09. String Compression

Link

int compress(vector<char>& chars) {
    int k = 0, i = 0, j = 1;
    chars.push_back(chars.back() + 1);
    while(j < chars.size()) 
        if(chars[j] == chars[i])
            j++;
        else {
            chars[k++] = chars[i];
            string dist = to_string(j - i);
            i = j;
            j = j + 1;
            if(dist != "1")
                for(char ch: dist)
                    chars[k++] = ch;
        }
    return k;
}

Last updated