Compress The String ! Hackerrank 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.


## Solution:--

# Enter your code here. Read input from STDIN. Print output to STD
#s=list(input())
# Answer:-
from itertools import groupby
print(*[(len(list(c)), int(k)) for k, c in groupby(input())])


## Explanation:--


Basically I'm unpacking the list comprehension and printing each element of it.

The list is built of elements of (len(list(c)), int(k)). len(list(c)) is simply the number of occurences of a character c returned by the groupby function. k is just the key value, the character itself.

Hope this helps, let me know if you have any other questions about anything specific.###







'''groups = []
uniquekeys = []
data = sorted(data, key=keyfunc)
for k, g in groupby(data, keyfunc):
    groups.append(list(g))      # Store group iterator as a list
    uniquekeys.append(k)'''

Comments

Popular posts from this blog

XAMPP, SQL BASIC COMMANDS

The Minion Game Hackerrank Solution

Arrays - DS | HackerRank Solutions