Encode the Message

Posted: 9 Sep, 2020
Difficulty: Easy


Try Problem

You have been given a text message. You have to return the Run-length Encoding of the given message.

Run-length encoding is a fast and simple method of encoding strings. The basic idea is to represent repeated successive characters as the character and a single count. For example, the string "aaaabbbccdaa" would be encoded as "a4b3c2d1a2".

Input format:
The first line contains an integer 'T' which denotes the number of test cases or queries to be run. Then the test cases follow:

The first and only line of each test case will contain a string denoting the message.
It's guaranteed that the message string will have no digits and consists solely of lowercase alphabetic characters.
Output format:
For each test case, print a single line containing the encoded message string. 

Output for every test case will be printed in a separate line.
You do not need to print anything, it has already been taken care of. Just implement the given function.
Constraints :
1 <= T <= 10
1 <= N <= 100000

Where 'N' is the length of the message string.

Time Limit: 1 sec
Approach 1

Build the encoded string by iterating left to right counting repeated successive characters

  • Create an empty encoded string 'ENCODEDMESSAGE' = “”.
  • Iterate from i = 0  to  N - 1 where ‘N’ is the length of the 'MESSAGE' string.
  • Store the current character in 'CURCHAR' = 'MESSAGE'[i] and initialize the 'CHARFREQ' = 1.
  • Increase ‘i’ and 'CHARFREQ'  while i + 1 < N and s[i + 1] == 'CURCHAR'. This will count the  repeated successive characters.
  • Append the 'CURCHAR' and 'CHARFREQ' (as string) in 'ENCODEDMESSAGE'.
  • Return the 'ENCODEDMESSAGE'.
Try Problem