Python: Compress repeated character by storing the length of a given string
17. String Compression
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')]
For more Practice: Solve these Related Problems:
- Write a Python program to compress a given string by reading character by character and replacing sequences with the character followed by its count.
- Write a Python program to implement run-length encoding on a string and then reconstruct the original string from the compressed form.
- Write a Python program to compress a string using itertools.groupby and then map a function to format the output as "char:count".
- Write a Python program to read a string and output a compressed version where consecutive repeated characters are replaced by the character and the number of repetitions, but only if the count is greater than one.
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.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics