Skip to content
Related Articles

Related Articles

Improve Article

Maximum repeated frequency of characters in a given string

  • Last Updated : 09 Jun, 2021

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

Javascript




<script>
 
// JavaScript 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
function findMaxFrequency(s)
{
    // Hash-Array to store the
    // frequency of characters
    var arr = Array(26).fill(0);
     
    // Loop to find the frequency
    // of the characters
    for (var i = 0; i < s.length; i++)
        arr[s[i].charCodeAt(0) - 'a'.charCodeAt(0)]++;
     
    // Hash map to store the occurrence
    // of frequencies of characters
    var hash = new Map();
    for (var i = 0; i < 26; i++)
        if (arr[i] != 0)
        {
            if(hash.has(arr[i]))
                hash.set(arr[i], hash.get(arr[i])+1)
            else
                hash.set(arr[i], 1)
        }
     
    // Loop to find the maximum
    // Repeated frequency from hash-map
    var max_count = 0, res = -1;
    hash.forEach((value, key) => {
         
        if (max_count < value) {
            res = key;
            max_count = value;
        }
    });
 
    document.write( "Frequency " + res + " is repeated "
         + max_count+" times");
}
 
// Driver Code
var s = "geeksgeeks";
 
// Function Call
findMaxFrequency(s);
 
 
</script>
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.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.




My Personal Notes arrow_drop_up
Recommended Articles
Page :