Compress the string in Python - HackerRank solution

Solution for hackerRank problem Compress the string in python

Problem :

In this task, we would like for you to appreciate the usefulness of the groupby() function of itertools . 

You are given a string S. Suppose a character 'c' occurs consecutively X times in the string. Replace these consecutive occurrences of the character 'c' with (X,c) in the string.

For a better understanding of the problem, check the explanation.

Input Format

A single line of input consisting of the string S.

Output Format

A single line of output consisting of the modified string.

Constraints

All the characters of S denote integers between 0 and 9.

1 <= |S| <= 104.

Sample Input

1222311

Sample Output

(1, 1) (3, 2) (1, 3) (2, 1)

Explanation

First, the character 1 occurs only once. It is replaced by (1, 1). Then the character 2 occurs three times, and it is replaced by (3, 2) and so on.

Also, note the single space within each compression and between the compressions.

Code

from itertools import *

s = input()

for i,j in groupby(map(int,list(s))):

    print(tuple([len(list(j)), i]) ,end = " ")

Explanation of the python functions used :

  • Itertools - This module imparts various functions that work on iterators to
        produce complex iterators.
  • groupby() - Used to group similar type of objects or elements.


Comments

Popular posts from this blog

Finding the percentage in python - HackerRank solution

HackerRank challenges with solutions (Rearrangement, Formula, Word sorting, Numbers, Sentence)

What's your name, Tuple - HackerRank solution in python