Skip to content
Related Articles

Related Articles

Maximum repeated frequency of characters in a given string
  • Last Updated : 15 Jun, 2020

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++




// 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;
}

Java




// 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

Python3




# 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

C#




// 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
Output:
Frequency 2 is repeated 3 times

Performance Analysis:

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

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :