Conte Letras com uma Tabela de Frequência
Conte caracteres usando um dict ou array.
Conte Letras com uma Tabela de Frequência é uma aula grátis de Coding Interview Prep no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Coding Interview Prep, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Coding Interview Prep inclui 4 aulas no total.
Por que contar caracteres
Inúmeros problemas com cadeias de caracteres se resumem a uma pergunta: com que frequência cada caractere aparece? Uma tabela de frequências responde a isso em uma única passagem. 📊
A forma com dicionário
Um dicionário simples associa cada caractere à sua contagem. Ele funciona para qualquer alfabeto, incluindo Unicode e símbolos.
freq = {}
for ch in 'apple':
freq[ch] = freq.get(ch, 0) + 1
print(freq)get() evita KeyError
Usar get(ch, 0) retorna 0 quando a chave não existe, então, na primeira vez que uma letra aparece, ela começa corretamente com um.
Counter faz isso por você
A classe Counter, do módulo collections, cria a tabela inteira em uma única linha. Ela é a favorita em competições por sua velocidade e clareza.
from collections import Counter
freq = Counter('apple')
print(freq['p']) # 2Chaves ausentes retornam zero
Um Counter nunca gera um erro para uma chave ausente. Consultar uma letra que você nunca viu simplesmente fornece 0, mantendo o código sem ramificações.
from collections import Counter
c = Counter('abc')
print(c['z']) # 0A forma com vetor fixo
Para letras minúsculas בלבד, uma lista com 26 posições é ainda mais rápida. Indexe cada letra usando aritmética com ord e incremente a contagem.
cnt = [0] * 26
for ch in 'apple':
cnt[ord(ch) - ord('a')] += 1Compromisso entre vetor e dicionário
O vetor é mais rápido, mas só serve para um alfabeto pequeno e conhecido. O dicionário ou Counter aceita quaisquer caracteres, com um pequeno custo adicional.
Encontrar os mais frequentes
Counter fornece most_common(k), que retorna os k caracteres mais frequentes já ordenados por frequência. Não é necessário ordenar manualmente.
from collections import Counter
print(Counter('mississippi').most_common(1))Comparar duas tabelas
Duas cadeias de caracteres são anagramas exatamente quando suas tabelas de frequências coincidem. Comparar dois Counters pode ser feito em uma única linha.
from collections import Counter
print(Counter('listen') == Counter('silent')) # TrueUma passagem basta
Criar a tabela custa O(n), uma única varredura da cadeia de caracteres. Depois disso, cada consulta leva tempo constante.
Subtrair para encontrar excedentes
Os Counters permitem subtração, então você pode identificar quais caracteres aparecem em uma cadeia, mas não na outra. Isso é ótimo para problemas no estilo de bilhetes anônimos.
from collections import Counter
print(Counter('aabb') - Counter('ab'))Verificação rápida
Uma pergunta sobre contagem de caracteres.
Recapitulação
Agora você consegue contar caracteres com um dicionário, um Counter ou um vetor com 26 posições, além de usar essas tabelas para testar anagramas e encontrar letras frequentes. 🎉
Perguntas Frequentes
A aula “Conte Letras com uma Tabela de Frequência” é grátis?
Sim — o texto completo de “Conte Letras com uma Tabela de Frequência” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Coding Interview Prep, atualize para CoddyKit PRO. O curso de Coding Interview Prep inclui 4 aulas no total.
O que vou aprender em “Conte Letras com uma Tabela de Frequência”?
Conte caracteres usando um dict ou array. Você pratica Coding Interview Prep com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Coding Interview Prep?
Nenhuma experiência prévia é necessária. Coding Interview Prep no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Conte Letras com uma Tabela de Frequência”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Coding Interview Prep?
Sim. Cada aula de Coding Interview Prep inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Truques com Caracteres, ord e chr
- Conte Letras com uma Tabela de Frequência
- Verificações Corretas de Palíndromos
- Divida, Remova Espaços e Reuna Palavras