TÓPICO
100% WA em Python. Todos os casos batem...
Enzo20 perguntou 4 years ago
A solução parecia ser indolor mas algo deu muito errado.
Como as letras estão em ordem alfabetica e elas são iteradas sempre do comeco, não há necessidade de usar uma função 'sort'. Para cada caractere alfanumerico da frase há uma adição no dicionario e pode haver uma atualização de qual é (ou quais são) as chaves com mais frequencia - 'maximo'. Apos o termino da frase o dicionario de presenças é percorrido e, para cada chave que tenha o valor igual ao maximo (lembrando que esta em ordem alfabetica) a chave (letra correspondente) é printada Depois disso ele é resetado e mais uma frase é recebida. Infelizmente não consegui encontrar o erro...
class Dicionario(object):
def __init__(self):
self.letras = {
'a': 0,
'b': 0,
'c': 0,
'd': 0,
'e': 0,
'f': 0,
'g': 0,
'h': 0,
'i': 0,
'j': 0,
'k': 0,
'l': 0,
'm': 0,
'n': 0,
'o': 0,
'p': 0,
'q': 0,
'r': 0,
's': 0,
't': 0,
'u': 0,
'v': 0,
'w': 0,
'x': 0,
'y': 0,
'z': 0,
}
self.maximo = 0
def resetDicionario(self):
self.letras = {
'a': 0,
'b': 0,
'c': 0,
'd': 0,
'e': 0,
'f': 0,
'g': 0,
'h': 0,
'i': 0,
'j': 0,
'k': 0,
'l': 0,
'm': 0,
'n': 0,
'o': 0,
'p': 0,
'q': 0,
'r': 0,
's': 0,
't': 0,
'u': 0,
'v': 0,
'w': 0,
'x': 0,
'y': 0,
'z': 0,
}
self.maximo = 0
def inserirLetra(self, letra):
self.letras[letra] += 1
if self.letras[letra] > self.maximo:
self.maximo = self.letras[letra]
def mostraMaiorFrequencia(self):
for letra, valor in self.letras.items():
if valor == self.maximo:
print(letra, end = '')
print()
nTestes = int(input())
letras = Dicionario()
for i in range(nTestes):
entrada = input()
frase = entrada.lower()
for letra in range(len(frase)):
if frase[letra].isalpha():
letras.inserirLetra(frase[letra])
letras.mostraMaiorFrequencia()
letras.resetDicionario()
Alguem tem alguma ideia?