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++ 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 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 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# 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 |
<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> |
Frequency 2 is repeated 3 times
Performance Analysis:
- Time Complexity: O(N)
- Auxiliary Space: O(N)