Open In App

Printing frequency of each character just after its consecutive occurrences

Improve
Improve
Like Article
Like
Save
Share
Report

Given a string in such a way that every character occurs in a repeated manner. Your task is to print the string by inserting the frequency of each unique character after it and also eliminating all repeated characters.

Examples: 

Input: GeeeEEKKKss
Output: G1e3E2K3s2

Input: ccccOddEEE
Output: c4O1d2E3

Recommended Practice

One approach to solve the above problem is to start a loop till the end of the string and for every iteration, increment a count till the character at ith position matches the following character. 

Below is the implementation to the above given problem. 

C++
// CPP program to print run
// length encoding of a string
#include <iostream>
using namespace std;

void printRLE(string s)
{
    for (int i = 0; s[i] != '\0'; i++) {

        // Counting occurrences of s[i]
        int count = 1;
        while (s[i] == s[i + 1]) {
            i++;
            count++;
        }
        cout << s[i] << count << " ";
    }

    cout << endl;
}

// Driver code
int main()
{
    printRLE("GeeeEEKKKss");
    printRLE("ccccOddEEE");
    return 0;
}
Java
public class Main {
    public static void printRLE(String s) {
        for (int i = 0; i < s.length(); i++) {
            int count = 1;
            while (i + 1 < s.length() && s.charAt(i) == s.charAt(i + 1)) {
                i++;
                count++;
            }
            System.out.print(s.charAt(i) + "" + count + " ");
        }
        System.out.println();
    }

    public static void main(String[] args) {
        printRLE("GeeeEEKKKss");
        printRLE("ccccOddEEE");
    }
}
C#
// C# program to print run
// length encoding of a string
using System;

class GFG {

    static void printRLE(String s)
    {
        for (int i = 0;
             i < s.Length - 1; i++) {

            // Counting occurrences of s[i]
            int count = 1;
            while (s[i] == s[i + 1]) {
                i++;
                count++;
                if (i + 1 == s.Length)
                    break;
            }
            Console.Write(s[i] + "" + count + " ");
        }

        Console.WriteLine();
    }

    // Driver code
    public static void Main(String[] args)
    {
        printRLE("GeeeEEKKKss");
        printRLE("ccccOddEEE");
    }
}

// This code contributed by Rajput-Ji
Javascript
<script>
// Javascript program to print run
// length encoding of a string
function printRLE(s)
{
    for(var i = 0; i < s.length; i++)
    {
        
        // Counting occurrences of s[i]
        var count = 1;
        while (i + 1 < s.length && 
               s.charAt(i) == s.charAt(i + 1))
        {
            i++;
            count++;
        }
        document.write(s.charAt(i) + "" + 
                             count + " ");
    }
    document.write("<br>");
}

// Driver code
printRLE("GeeeEEKKKss");
printRLE("ccccOddEEE");

// This code is contributed by Ankita saini

</script>
Python 3
def printRLE(s):
    i = 0
    while i < len(s):
        count = 1
        while i + 1 < len(s) and s[i] == s[i + 1]:
            i += 1
            count += 1
        print(s[i] + str(count), end=" ")
        i += 1
    print()

printRLE("GeeeEEKKKss")
printRLE("ccccOddEEE")

Output
G1 e3 E2 K3 s2 
c4 O1 d2 E3 

Time Complexity: O(n)
Auxiliary Space: O(1)



Last Updated : 19 Mar, 2024
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads