#include <iostream>
#include <vector>
#include <string>
using namespace std;
vector<string> compress(vector<char>& chars) {
int n = chars.size();
vector<string> result;
for (int i = 0; i < n; ) {
char currentChar = chars[i];
int count = 0;
// Count repetitions
int j = i;
while (j < n && chars[j] == currentChar) {
count++;
j++;
}
// Build entry
if (count == 1) {
result.push_back(string(1, currentChar));
} else {
result.push_back(currentChar + to_string(count));
}
i = j;
}
return result;
}
int main() {
vector<char> input = {'a', 'a', 'b', 'c', 'c', 'c'};
vector<string> compressed = compress(input);
cout << "Compressed vector of strings: ";
for (const string& s : compressed) {
cout << s << " ";
}
cout << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdmVjdG9yPHN0cmluZz4gY29tcHJlc3ModmVjdG9yPGNoYXI+JiBjaGFycykgewogICAgaW50IG4gPSBjaGFycy5zaXplKCk7CiAgICB2ZWN0b3I8c3RyaW5nPiByZXN1bHQ7CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyApIHsKICAgICAgICBjaGFyIGN1cnJlbnRDaGFyID0gY2hhcnNbaV07CiAgICAgICAgaW50IGNvdW50ID0gMDsKCiAgICAgICAgLy8gQ291bnQgcmVwZXRpdGlvbnMKICAgICAgICBpbnQgaiA9IGk7CiAgICAgICAgd2hpbGUgKGogPCBuICYmIGNoYXJzW2pdID09IGN1cnJlbnRDaGFyKSB7CiAgICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgICAgIGorKzsKICAgICAgICB9CgogICAgICAgIC8vIEJ1aWxkIGVudHJ5CiAgICAgICAgaWYgKGNvdW50ID09IDEpIHsKICAgICAgICAgICAgcmVzdWx0LnB1c2hfYmFjayhzdHJpbmcoMSwgY3VycmVudENoYXIpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXN1bHQucHVzaF9iYWNrKGN1cnJlbnRDaGFyICsgdG9fc3RyaW5nKGNvdW50KSk7CiAgICAgICAgfQoKICAgICAgICBpID0gajsKICAgIH0KCiAgICByZXR1cm4gcmVzdWx0Owp9CmludCBtYWluKCkgewogICAgdmVjdG9yPGNoYXI+IGlucHV0ID0geydhJywgJ2EnLCAnYicsICdjJywgJ2MnLCAnYyd9OwoKICAgIHZlY3RvcjxzdHJpbmc+IGNvbXByZXNzZWQgPSBjb21wcmVzcyhpbnB1dCk7CiAgICBjb3V0IDw8ICJDb21wcmVzc2VkIHZlY3RvciBvZiBzdHJpbmdzOiAiOwogICAgZm9yIChjb25zdCBzdHJpbmcmIHMgOiBjb21wcmVzc2VkKSB7CiAgICAgICAgY291dCA8PCBzIDw8ICIgIjsKICAgIH0KICAgIGNvdXQgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=
MTAKYWJhCmdlZWtzZm9yZ2Vla3MKZ2Vla3Nmb3JnZWVrcwpnZWVrc2ZvcmdlZWtzCmdlZWtzZm9yZ2Vla3MKZ2Vla3Nmb3JnZWVrcwpnZWVrc2ZvcmdlZWtzCmdlZWtzZm9yZ2Vla3MKZ2Vla3Nmb3JnZWVrcwpnZWVrc2ZvcmdlZWtz
10
aba
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks
geeksforgeeks