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 = “neveropenneveropen”
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 = "neveropenneveropen" ; // 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 = "neveropenneveropen" ; // 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 = "neveropenneveropen" # 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 = "neveropenneveropen" ; // 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 = "neveropenneveropen" ; // Function Call findMaxFrequency(s); </script> |
Frequency 2 is repeated 3 times
Performance Analysis:
- Time Complexity: O(N)
- Auxiliary Space: O(N)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!