The idea of string compression is as follows: AAAB > A3B1. That is, if we’re given 3 A’s and 1 B, the output should be A3B1.
If we go by this logic, for input of AAABaaaaAA, we should get A5B1a4. This can be achieved by the code given below:
# string compression problem
# AAAB > A3B1
def compress_string(s):
temp = {}
for letter in s:
if letter in temp:
temp[letter] += 1
else:
temp[letter] = 1
compressed_string = ''
for letter in temp:
compressed_string += letter + str(temp[letter])
return compressed_string
compress_string('AAABaaaaAA') #Output: A5B1a4
The code starts with a temp dictionary. It then looks at each letter in the input string and counts it using temp.
Next it simply concatenates letter (the actual character) and str(temp[letter]) (the count of that character) in a variable called compressed_String and prints it.