#include <iostream>
using namespace std;
string stringCompression(string A) {
int index = 0; char character = ' '; int count = 1; string convertInt = ""; int initial_index = 0, length = A.length();
while (index <A.length()) {
character = A[index];
initial_index = index;
index++;
while (index<=A.length() && A[index] == character)
{
count++;
index++;
}
if (count > 1)
{
convertInt = to_string(count);
A.erase((initial_index+1), count-1);
A.insert(initial_index+1, convertInt);
index = initial_index+convertInt.length()+1;
count = 1;
}
}
return A;
}
int main()
{
cout << stringCompression("")<<endl ;
cout << stringCompression("abcde")<<endl ;
cout << stringCompression("aabcccccaaa")<<endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpzdHJpbmcgc3RyaW5nQ29tcHJlc3Npb24oc3RyaW5nIEEpIHsKICAgIGludCBpbmRleCA9IDA7IGNoYXIgY2hhcmFjdGVyID0gJyAnOyBpbnQgY291bnQgPSAxOyBzdHJpbmcgY29udmVydEludCA9ICIiOyBpbnQgaW5pdGlhbF9pbmRleCA9IDAsIGxlbmd0aCA9IEEubGVuZ3RoKCk7CiAgICB3aGlsZSAoaW5kZXggPEEubGVuZ3RoKCkpIHsKICAgICAgICBjaGFyYWN0ZXIgPSBBW2luZGV4XTsKICAgICAgICBpbml0aWFsX2luZGV4ID0gaW5kZXg7CiAgICAgICAgaW5kZXgrKzsKICAgICAgICB3aGlsZSAoaW5kZXg8PUEubGVuZ3RoKCkgJiYgQVtpbmRleF0gPT0gY2hhcmFjdGVyKQogICAgICAgIHsKICAgICAgICAgICAgY291bnQrKzsKICAgICAgICAgICAgaW5kZXgrKzsKICAgICAgICB9CiAgICAgICAgaWYgKGNvdW50ID4gMSkKICAgICAgICB7CiAgICAgICAgICAgIGNvbnZlcnRJbnQgPSB0b19zdHJpbmcoY291bnQpOwogICAgICAgICAgICBBLmVyYXNlKChpbml0aWFsX2luZGV4KzEpLCBjb3VudC0xKTsKICAgICAgICAgICAgQS5pbnNlcnQoaW5pdGlhbF9pbmRleCsxLCBjb252ZXJ0SW50KTsKICAgICAgICAgICAgaW5kZXggPSAgaW5pdGlhbF9pbmRleCtjb252ZXJ0SW50Lmxlbmd0aCgpKzE7CiAgICAgICAgICAgIGNvdW50ID0gMTsKICAgICAgICB9CiAgICB9IAogICAgcmV0dXJuIEE7Cn0KaW50IG1haW4oKQp7CiAgICBjb3V0IDw8IHN0cmluZ0NvbXByZXNzaW9uKCIiKTw8ZW5kbCA7CiAgICBjb3V0IDw8IHN0cmluZ0NvbXByZXNzaW9uKCJhYmNkZSIpPDxlbmRsIDsKICAgIGNvdXQgPDwgc3RyaW5nQ29tcHJlc3Npb24oImFhYmNjY2NjYWFhIik8PGVuZGw7Cn0=