Dada una string S , la tarea es encontrar el recuento de la frecuencia máxima repetida de caracteres en la string S dada.
Ejemplos :
Entrada: S = “geeksgeeks”
Salida: La frecuencia 2 se repite 3 veces
Explicación:
Frecuencia de caracteres en la string dada –
{“g”: 2, “e”: 4, “k”: 2, “s”: 2}
La frecuencia 2 se repite tres veces para los caracteres “g”, “k”, “s”.
Entrada: S = “abcabcdedee”
Salida: La frecuencia 2 se repite 4 veces.
Explicación:
Frecuencia de caracteres en la string dada –
{“a”: 2, “b”: 2, “c”: 2, “d”: 2, “e”: 3}
La frecuencia 2 se repite cuatro veces para el caracteres “a”, “b”, “c”, “d”.
Enfoque eficiente:
- La idea es almacenar primero la frecuencia de los caracteres de la string en una array de tamaño 26. Dado que todos los caracteres de las strings se encuentran entre los 26 alfabetos ingleses en minúsculas, podemos almacenar la frecuencia de los caracteres en una array de tamaño 26.
- Cree un mapa hash, para almacenar el recuento de frecuencias de los caracteres y devolver la frecuencia que ocurrió el máximo de veces.
A continuación se muestra la implementación del enfoque anterior:
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>
Frequency 2 is repeated 3 times
Análisis de rendimiento:
- Complejidad de tiempo: O(N)
- Espacio Auxiliar: O(N)
Publicación traducida automáticamente
Artículo escrito por epistler_999 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA