# HackerRank Compress the String! solution in python | python question solution

In this task, we would like for you to appreciate the usefulness of the groupby() function of itertools . To read more about this function, Check this out .

You are given a string . Suppose a character ‘‘ occurs consecutively  times in the string. Replace these consecutive occurrences of the character ‘‘ with  in the string.

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

Input Format

A single line of input consisting of the string .

Output Format

A single line of output consisting of the modified string.

Constraints

All the characters of  denote integers between  and .

Sample Input

``1222311``

Sample Output

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

Explanation

First, the character  occurs only once. It is replaced by . Then the character  occurs three times, and it is replaced by  and so on.

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

In this Compress the string problem we need to develop a python program that can read a string as input and then we need to print the tuples containing the number of occurrence of integers on the output screen.

## Problem solution in Python 2 programming.

`from itertools import groupbys=map(int,list(raw_input()))l=[(sum(1 for i in g),k) for k,g in groupby(s)]print ' '.join(map(str,l))`

## Problem solution in Python 3 programming.

`from itertools import groupbyfor key, group in groupby(input()):   print('({}, {})'.format(len(list(group)), key), end=" ")`

### Problem solution in pypy programming.

`# Enter your code here. Read input from STDIN. Print output to STDOUTfrom itertools import groupbyprint " ".join(str((len(list(k)),int(i))) for i,k in groupby(raw_input()))`

### Problem solution in pypy3 programming.

`s=input()prev_c=''count=0Out=()for c in s :    if c == prev_c:        count+=1    else:        if prev_c!='':            print((count+1,int(prev_c)), end=" ")        prev_c=c        count=0print((count+1,int(prev_c)),end=" ")`