HackerRank Python Solution - Itertools Topic - Compress the String!

  • 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, 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.

Solution:

from itertools import groupby

s = input()

print(*[(len(list(c)), int(k)) for k, c in groupby(s)])
Disclaimer: The problem statement is given by hackerrank.com but the solution is generated by the Geek4Tutorial admin. If there is any concern regarding this post or website, please contact us using the contact form. Thank you!

No comments:

Post a Comment

You might also like

Deploy your Django web app to Azure Web App using App Service - F1 free plan

In this post, we will look at how we can deploy our Django app using the Microsoft Azure app service - a free plan. You need an Azure accoun...