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.
Compress the String Solution-
Although there are many ways to solve this problem but I will solve this problem by writing the easiest code while maintaining the readability of python.
Before we proceed let's give you a quick introduction on Itertools.groupby( )- This method calculates the keys for each element present in iterable(list, tuple, dict, etc). It returns key and iterable of grouped items.
SYNTAX- itertools.groupby(iterable, key_func)
iterable: Iterable can be of any of (list, tuple, dictionary).
key: A function that calculates keys for each element present in iterable.
from itertools import groupby
s=input()
for k,g in groupby(s):
print(tuple([len(list(g)),int(k)]),end='\t')
- In the first line of the code we are importing the groupby from the module itertools.
- Second line takes the string input
- In the third line of the code we apply the group by function on string 's'. We are using two iterators k,g which represents key and group . key(k) contains all the unique digits in the input order.

0 comments:
Post a Comment
Feel free to share your thoughts and suggestion...