Voltar para os desafios
Fácil 0 resolvidos 0% de aceitação

Frequência de Caracteres

Conte quantas vezes cada caractere aparece.

O que você vai aprender

  • Montar uma tabela de frequências
  • Atualizar entradas de um dicionário com segurança
  • Retornar os resultados na ordem pedida

Problema

Ver original (inglês)

Conte cada caractere em text, exceto espaços. Relate cada caractere distinto uma vez como "caractere:quantidade", ordenados pelo código do caractere (assim, letras maiúsculas vêm antes das minúsculas).

Implemente character_frequency(text).

Entrada

text: O texto a ser contado (caracteres ASCII).

Saída

Retorne a lista de entradas "caractere:quantidade".

Restrições

0 ≤ comprimento ≤ 10.000

Exemplos

Exemplo 1
Entrada:
text = "hello"

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

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

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

Explicação

e:1, h:1, l:2, o:1 ordenados por caractere: ["e:1", "h:1", "l:2", "o:1"].

Exemplo 2
Entrada:
text = "a a A"

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

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

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

Explicação

Espaços são ignorados; "A" vem antes de "a": ["A:1", "a:2"].

Como abordar

Tente sozinho primeiro e depois abra uma dica de cada vez.

Dica 1

Ignore espaços, mas conte cada outro caractere ASCII exatamente como aparece.

Dica 2

Acumule os contadores em uma tabela de frequências e depois emita cada caractere uma vez.

Dica 3

Ordene pelo código do caractere para que maiúsculas e minúsculas sigam naturalmente a ordem ASCII.

Complexidade esperada

tempo O(n + m log m), espaço extra O(m)

Referências

Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.

Aprenda com outros

Soluções da comunidade

Ainda não há soluções publicadas. Resolva este desafio para compartilhar a primeira.