Volver a los desafíos
Fácil 0 resueltos 0% de aceptación

Frecuencia de Caracteres

Cuenta cuántas veces aparece cada carácter.

Lo que aprenderás

  • Construir una tabla de frecuencias
  • Actualizar entradas de un diccionario con seguridad
  • Devolver resultados en el orden pedido

Problema

Ver original (inglés)

Cuenta cada carácter en text excepto los espacios. Informa cada carácter distinto una sola vez como "carácter:conteo", ordenados por el código de carácter (por lo que las letras mayúsculas van antes que las minúsculas).

Implementa character_frequency(text).

Entrada

text: El texto a analizar (caracteres ASCII).

Salida

Devuelve la lista de entradas "carácter:conteo".

Restricciones

0 ≤ longitud ≤ 10,000

Ejemplos

Ejemplo 1
Entrada:
text = "hello"

Salida esperada:
expected = ["e:1", "h:1", "l:2", "o:1"]
Entrada:
std::string text = "hello";

Salida esperada:
std::vector<std::string> expected = {"e:1", "h:1", "l:2", "o:1"};
Entrada:
string text = "hello";

Salida esperada:
string[] expected = new string[] {"e:1", "h:1", "l:2", "o:1"};

Explicación

e:1, h:1, l:2, o:1 ordenados por carácter: ["e:1", "h:1", "l:2", "o:1"].

Ejemplo 2
Entrada:
text = "a a A"

Salida esperada:
expected = ["A:1", "a:2"]
Entrada:
std::string text = "a a A";

Salida esperada:
std::vector<std::string> expected = {"A:1", "a:2"};
Entrada:
string text = "a a A";

Salida esperada:
string[] expected = new string[] {"A:1", "a:2"};

Explicación

Se omiten los espacios; "A" se ordena antes que "a": ["A:1", "a:2"].

Cómo abordarlo

Inténtalo primero por tu cuenta y luego abre las pistas una a una.

Pista 1

Salta los espacios, pero cuenta exactamente cada otro carácter ASCII tal como aparece.

Pista 2

Acumula los conteos en una tabla de frecuencias y luego emite cada carácter distinto una sola vez.

Pista 3

Ordena por código de carácter para que el orden de mayúsculas y minúsculas siga naturalmente ASCII.

Complejidad esperada

tiempo O(n + m log m), espacio extra O(m)

Referencias

Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.

Aprende de otros

Soluciones de la comunidad

Aún no hay soluciones publicadas. Resuelve este reto para compartir la primera.