w3resource

Python: Compress repeated character by storing the length of a given string


Write a Python program to read a given string character by character and compress repeated characters by storing the length of those character(s).

Sample Solution:

Python Code:

from itertools import groupby
def encode_str(input_str):
    return [(len(list(n)), m) for m,n in groupby(input_str)]
 
str1 = "AAASSSSKKIOOOORRRREEETTTTAAAABBBBBBDDDDD" 
print("Original string:")
print(str1)
print("Result:")
print(encode_str(str1))

str1 = "jjjjiiiiooooosssnssiiiiwwwweeeaaaabbbddddkkkklll" 
print("\nOriginal string:")
print(str1)
print("Result:")
print(encode_str(str1))

Sample Output:

Original string:
AAASSSSKKIOOOORRRREEETTTTAAAABBBBBBDDDDD
Result:
[(3, 'A'), (4, 'S'), (2, 'K'), (1, 'I'), (4, 'O'), (4, 'R'), (3, 'E'), (4, 'T'), (4, 'A'), (6, 'B'), (5, 'D')]

Original string:
jjjjiiiiooooosssnssiiiiwwwweeeaaaabbbddddkkkklll
Result:
[(4, 'j'), (4, 'i'), (5, 'o'), (3, 's'), (1, 'n'), (2, 's'), (4, 'i'), (4, 'w'), (3, 'e'), (4, 'a'), (3, 'b'), (4, 'd'), (4, 'k'), (3, 'l')]

Python Code Editor:


Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a Python program find the sorted sequence from a set of permutations of a given input.
Next: Write a Python program to generate permutations of n items in which successive permutations differ from each other by the swapping of any two items.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.