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 repeated thrice for the characters “g”, “k”, “s”.

Input: S = “abcabcdedee”
Output: Frequency 2 is repeated 4 times.
Explanation:
Frequency of characters in the given string –
{“a”: 2, “b”: 2, “c”: 2, “d”: 2, “e”: 3}
The frequency 2 is repeated four times for the characters “a”, “b”, “c”, “d”.

Efficient Approach:



  • The idea is to first store the frequency of characters of the string in an array of size 26. Since all characters of strings are among 26 lowercase English alphabets, we can store the frequency of characters in an array of size 26.
  • Create a hash map, to store the count of frequencies of the characters and return the frequency which occurred max times.

Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ implementation to find the
// maximum repeated frequency of 
// characters in the given string
  
#include <bits/stdc++.h>
using namespace std;
  
// Function to find the maximum
// repeated frequency of the 
// characters in the given string
void findMaxFrequency(string s)
{
    // Hash-Array to store the 
    // frequency of characters
    int arr[26] = { 0 };
      
    // Loop to find the frequency
    // of the characters
    for (int i = 0; i < s.length(); i++)
        arr[s[i] - 'a']++;
      
    // Hash map to store the occurrence
    // of frequencies of characters
    unordered_map<int, int> hash;
    for (int i = 0; i < 26; i++)
        if (arr[i] != 0)
            hash[arr[i]]++;
      
    // Loop to find the maximum
    // Repeated frequency from hash-map
    int max_count = 0, res = -1;
    for (auto i : hash) {
        if (max_count < i.second) {
            res = i.first;
            max_count = i.second;
        }
    }
  
    cout <<"Frequency " << res << " is repeated " 
         << max_count<<" times";
}
  
// Driver Code
int main()
{
    string s = "geeksgeeks";
      
    // Function Call
    findMaxFrequency(s);
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java implementation to find the
// maximum repeated frequency of 
// characters in the given String
import java.util.*;
  
class GFG{
  
// Function to find the maximum
// repeated frequency of the 
// characters in the given String
static void findMaxFrequency(String s)
{
    // Hash-Array to store the 
    // frequency of characters
    int arr[] = new int[26];
      
    // Loop to find the frequency
    // of the characters
    for (int i = 0; i < s.length(); i++)
        arr[s.charAt(i) - 'a']++;
      
    // Hash map to store the occurrence
    // of frequencies of characters
    HashMap<Integer,Integer> hash = new HashMap<Integer,Integer>();
    for (int i = 0; i < 26; i++)
        if (arr[i] != 0) {
            if(hash.containsKey(arr[i])){
                hash.put(arr[i], hash.get(arr[i])+1);
            }
            else{
                hash.put(arr[i], 1);
            }
        }
      
    // Loop to find the maximum
    // Repeated frequency from hash-map
    int max_count = 0, res = -1;
    for (Map.Entry<Integer,Integer> i : hash.entrySet()){
        if (max_count < i.getValue()) {
            res = i.getKey();
            max_count = i.getValue();
        }
    }
  
    System.out.println("Frequency " + res+ " is repeated "
        + max_count+" times");
}
  
// Driver Code
public static void main(String[] args)
{
    String s = "geeksgeeks";
      
    // Function Call
    findMaxFrequency(s);
}
}
  
// This code is contributed by sapnasingh4991

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 implementation to find the
# maximum repeated frequency of 
# characters in the given string
  
# Function to find the maximum
# repeated frequency of the 
# characters in the given string
def findMaxFrequency(s):
      
    # Hash-Array to store the 
    # frequency of characters
      
    arr = [0]*26
      
    # Loop to find the frequency
    # of the characters
    for i in range(len(s)):
        arr[ord(s[i]) - ord('a')] += 1
          
    # Hash map to store the occurrence
    # of frequencies of characters
      
    hash = {}
    for i in range(26):
        if (arr[i] != 0):
            if arr[i] not in hash:
                hash[arr[i]] = 0
            hash[arr[i]] += 1
              
    # Loop to find the maximum
    # Repeated frequency from hash-map
    max_count = 0
    res = -1
    for i in hash:
        if (max_count < hash[i]):
            res = i
            max_count = hash[i]
      
    print("Frequency", res, "is repeated", max_count, "times")
  
# Driver Code
  
s = "geeksgeeks"
  
# Function Call
findMaxFrequency(s)
  
# This code is contributed by shubhamsingh10

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# implementation to find the
// maximum repeated frequency of 
// characters in the given String
using System;
using System.Collections.Generic;
  
class GFG{
   
// Function to find the maximum
// repeated frequency of the 
// characters in the given String
static void findMaxFrequency(String s)
{
    // Hash-Array to store the 
    // frequency of characters
    int []arr = new int[26];
       
    // Loop to find the frequency
    // of the characters
    for (int i = 0; i < s.Length; i++)
        arr[s[i] - 'a']++;
       
    // Hash map to store the occurrence
    // of frequencies of characters
    Dictionary<int,int> hash = new Dictionary<int,int>();
    for (int i = 0; i < 26; i++)
        if (arr[i] != 0) {
            if(hash.ContainsKey(arr[i])){
                hash[arr[i]] = hash[arr[i]]+1;
            }
            else{
                hash.Add(arr[i], 1);
            }
        }
       
    // Loop to find the maximum
    // Repeated frequency from hash-map
    int max_count = 0, res = -1;
    foreach( KeyValuePair<int,int> i in hash){
        if (max_count < i.Value) {
            res = i.Key;
            max_count = i.Value;
        }
    }
   
    Console.WriteLine("Frequency " + res+ " is repeated "
        + max_count+" times");
}
   
// Driver Code
public static void Main(String[] args)
{
    String s = "geeksgeeks";
       
    // Function Call
    findMaxFrequency(s);
}
}
   
  
// This code is contributed by 29AjayKumar

chevron_right


Output:

Frequency 2 is repeated 3 times

Performance Analysis:

  • Time Complexity: O(N)
  • Auxiliary Space: O(N)

competitive-programming-img




My Personal Notes arrow_drop_up

Recommended Posts:


Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.