Frecuencia máxima repetida de caracteres en una string dada

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>
Producción: 

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *