Run-Length Encoding - Amazon Top Interview Questions


Problem Statement :


Given a string s, return its run-length encoding. You can assume the string to be encoded have no digits and consists solely of alphabetic characters.

Constraints

n ≤ 100,000 where n is the length of s

Example 1

Input

s = "aaaabbbccdaa"

Output

"4a3b2c1d2a"

Example 2

Input

s = "abcde"

Output

"1a1b1c1d1e"

Example 3

Input

s = "aabba"

Output

"2a2b1a"

Example 4

Input

s = "aaaaaaaaaa"

Output

"10a"



Solution :



title-img




                        Solution in C++ :

string solve(string s) {
    string answer;
    int n = s.size();
    int j = 0;
    int count = 0;
    for (int i = 0; i < n;) {
        char character = s[i];
        while (j < n && s[j] == character) {
            j++;
        }
        answer.append(to_string(j - i));
        answer.append(1, character);
        i = j;
    }
    return answer;
}
                    


                        Solution in Java :

import java.util.*;

class Solution {
    public String solve(String s) {
        if (s.length() == 0)
            return s;

        StringBuilder result = new StringBuilder();
        char preChar = s.charAt(0);
        int count = 0;

        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == preChar)
                count++;
            else {
                result.append(count).append(preChar);
                preChar = s.charAt(i);
                count = 1;
            }
        }

        result.append(count).append(preChar);
        return result.toString();
    }
}
                    


                        Solution in Python : 
                            
class Solution:
    def solve(self, s):
        return "".join([str(len(list(j))) + str(i) for i, j in groupby(s)])
                    


View More Similar Problems

Pair Sums

Given an array, we define its value to be the value obtained by following these instructions: Write down all pairs of numbers from this array. Compute the product of each pair. Find the sum of all the products. For example, for a given array, for a given array [7,2 ,-1 ,2 ] Note that ( 7 , 2 ) is listed twice, one for each occurrence of 2. Given an array of integers, find the largest v

View Solution →

Lazy White Falcon

White Falcon just solved the data structure problem below using heavy-light decomposition. Can you help her find a new solution that doesn't require implementing any fancy techniques? There are 2 types of query operations that can be performed on a tree: 1 u x: Assign x as the value of node u. 2 u v: Print the sum of the node values in the unique path from node u to node v. Given a tree wi

View Solution →

Ticket to Ride

Simon received the board game Ticket to Ride as a birthday present. After playing it with his friends, he decides to come up with a strategy for the game. There are n cities on the map and n - 1 road plans. Each road plan consists of the following: Two cities which can be directly connected by a road. The length of the proposed road. The entire road plan is designed in such a way that if o

View Solution →

Heavy Light White Falcon

Our lazy white falcon finally decided to learn heavy-light decomposition. Her teacher gave an assignment for her to practice this new technique. Please help her by solving this problem. You are given a tree with N nodes and each node's value is initially 0. The problem asks you to operate the following two types of queries: "1 u x" assign x to the value of the node . "2 u v" print the maxim

View Solution →

Number Game on a Tree

Andy and Lily love playing games with numbers and trees. Today they have a tree consisting of n nodes and n -1 edges. Each edge i has an integer weight, wi. Before the game starts, Andy chooses an unordered pair of distinct nodes, ( u , v ), and uses all the edge weights present on the unique path from node u to node v to construct a list of numbers. For example, in the diagram below, Andy

View Solution →

Heavy Light 2 White Falcon

White Falcon was amazed by what she can do with heavy-light decomposition on trees. As a resut, she wants to improve her expertise on heavy-light decomposition. Her teacher gave her an another assignment which requires path updates. As always, White Falcon needs your help with the assignment. You are given a tree with N nodes and each node's value Vi is initially 0. Let's denote the path fr

View Solution →