Maximum repeating character for every index in given String
Last Updated :
18 Jun, 2021
Given string str consisting of lowercase alphabets, the task is to find the maximum repeating character obtained for every character of the string. If for any index, more than one character has occurred a maximum number of times, then print the character which had occurred most recently.
Examples:
Input: str = "abbc"
Output:
a -> 1
b -> 1
b -> 2
b -> 2
Explanation:
str[0] = 'a'. Therefore, print a -> 1.
str[1] = 'b'. Now 'a' and 'b' have equal frequency. Since, 'b' is the most recently occurring character, print b -> 1.
str[2] = 'b'. Since 'b'is the most repeating character, print b -> 2.
str[3] = 'c'. Since 'b'is the most repeating character, print b -> 2.
Input: str = "htdddg"
Output:h -> 1
t -> 1
d -> 1
d -> 2
d -> 3
d -> 3
Approach: Follow the steps given below to solve the problem:
Below is the implementation of the above approach:
C++
// C++ Program to implement
// the above approach
#include <bits/stdc++.h>
using namespace std;
// Function to print the
// maximum repeating
// character at each index
// of the String
void findFreq(string str,
int N)
{
// Stores frequency of
// each distinct character
int freq[256];
memset(freq, 0,
sizeof(freq));
// Stores frequency of
// maximum repeating
// character
int max = 0;
// Stores the character having
// maximum frequency
char charMax = '0';
// Traverse the String
for (int i = 0; i < N; i++)
{
// Stores current character
char ch = str[i];
// Update the frequency of str[i]
freq[ch]++;
// If frequency of current
// character exceeds max
if (freq[ch] >= max)
{
// Update max
max = freq[ch];
// Update charMax
charMax = ch;
}
// Print the required output
cout<< charMax << "->" <<
max << endl;
}
}
// Driver Code
int main()
{
string str = "abbc";
// Stores length of str
int N = str.size();
findFreq(str, N);
}
// This code is contributed by Rajput-Ji
Java
// Java program to implement
// the above approach
import java.util.*;
public class GFG {
// Function to print the maximum repeating
// character at each index of the string
public static void findFreq(String str,
int N)
{
// Stores frequency of
// each distinct character
int[] freq = new int[256];
// Stores frequency of maximum
// repeating character
int max = 0;
// Stores the character having
// maximum frequency
char charMax = '0';
// Traverse the string
for (int i = 0; i < N; i++) {
// Stores current character
char ch = str.charAt(i);
// Update the frequency of str[i]
freq[ch]++;
// If frequency of current
// character exceeds max
if (freq[ch] >= max) {
// Update max
max = freq[ch];
// Update charMax
charMax = ch;
}
// Print the required output
System.out.println(
charMax + " -> " + max);
}
}
// Driver Code
public static void main(String[] args)
{
String str = "abbc";
// Stores length of str
int N = str.length();
findFreq(str, N);
}
}
Python3
# Python3 program to implement
# the above approach
# Function to print the maximum repeating
# character at each index of the string
def findFreq(strr, N):
# Stores frequency of
# each distinct character
freq = [0] * 256
# Stores frequency of maximum
# repeating character
max = 0
# Stores the character having
# maximum frequency
charMax = '0'
# Traverse the string
for i in range(N):
# Stores current character
ch = ord(strr[i])
# Update the frequency of strr[i]
freq[ch] += 1
# If frequency of current
# character exceeds max
if (freq[ch] >= max):
# Update max
max = freq[ch]
# Update charMax
charMax = ch
# Print the required output
print(chr(charMax), "->", max)
# Driver Code
if __name__ == '__main__':
strr = "abbc"
# Stores length of strr
N = len(strr)
findFreq(strr, N)
# This code is contributed by mohit kumar 29
C#
// C# program to implement
// the above approach
using System;
class GFG{
// Function to print the maximum repeating
// character at each index of the string
public static void findFreq(String str,
int N)
{
// Stores frequency of
// each distinct character
int[] freq = new int[256];
// Stores frequency of maximum
// repeating character
int max = 0;
// Stores the character having
// maximum frequency
char charMax = '0';
// Traverse the string
for (int i = 0; i < N; i++)
{
// Stores current character
char ch = str[i];
// Update the frequency of
// str[i]
freq[ch]++;
// If frequency of current
// character exceeds max
if (freq[ch] >= max)
{
// Update max
max = freq[ch];
// Update charMax
charMax = ch;
}
// Print the required output
Console.WriteLine(charMax +
" -> " + max);
}
}
// Driver Code
public static void Main(String[] args)
{
String str = "abbc";
// Stores length of str
int N = str.Length;
findFreq(str, N);
}
}
// This code is contributed by shikhasingrajput
JavaScript
<script>
// JavaScript Program to implement
// the above approach
// Function to print the
// maximum repeating
// character at each index
// of the String
function findFreq(str, N) {
// Stores frequency of
// each distinct character
let freq = new Array(256).fill(0);
// Stores frequency of
// maximum repeating
// character
let max = 0;
// Stores the character having
// maximum frequency
let charMax = '0';
// Traverse the String
for (let i = 0; i < N; i++) {
// Stores current character
let ch = str[i].charCodeAt(0);
// Update the frequency of str[i]
freq[ch]++;
// If frequency of current
// character exceeds max
if (freq[ch] >= max) {
// Update max
max = freq[ch];
// Update charMax
charMax = ch;
}
// Print the required output
document.write(String.fromCharCode(charMax) + "->" +
max + "<br>");
}
}
// Driver Code
let str = "abbc";
// Stores length of str
let N = str.length;
findFreq(str, N);
// This code is contributed by gfgking
</script>
Output: a -> 1
b -> 1
b -> 2
b -> 2
Time Complexity: O(N)
Auxiliary Space: O(1)
Similar Reads
Maximum consecutive repeating character in string Given a string s, the task is to find the maximum consecutive repeating character in the string.Note: We do not need to consider the overall count, but the count of repeating that appears in one place.Examples: Input: s = "geeekk"Output: eExplanation: character e comes 3 times consecutively which is
11 min read
Maximum repeated frequency of characters in a given string Given a string S, the task is to find the count of maximum repeated frequency of characters in the given string S.Examples: Input: S = "geeksgeeks" Output: Frequency 2 is repeated 3 times Explanation: Frequency of characters in the given string - {"g": 2, "e": 4, "k": 2, "s": 2} The frequency 2 is r
6 min read
Find maximum occurring character in a string Given string str. The task is to find the maximum occurring character in the string str.Examples:Input: geeksforgeeksOutput: eExplanation: 'e' occurs 4 times in the stringInput: testOutput: tExplanation: 't' occurs 2 times in the stringReturn the maximum occurring character in an input string using
8 min read
Largest index for each distinct character in given string with frequency K Given a string S consisting of lowercase English letters and an integer K, the task is to find, for each distinct character in S, the largest index having this character exactly K times. If no such characters exist, print -1. Print the result in a lexicographical ordering.Note: Consider 0-based inde
8 min read
Find last index of a character in a string Given a string str and a character x, find last index of x in str. Examples : Input : str = "geeks", x = 'e' Output : 2 Last index of 'e' in "geeks" is: 2 Input : str = "Hello world!", x = 'o' Output : 7 Last index of 'o' is: 7 Recommended PracticeLast index of a character in the stringTry It! Metho
8 min read