• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

rubenp

ajuda

3 mensagens neste tópico

oi podem me ajudar kom este programa?

esta aqui o enunciado:

escreve uma funçao "mais_frequente" que tem uma string como parâmetro e imprime no ecrã as 3 letras mais frequentes nessa strimg

obrigado pela atençao

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

só te posso ajudar quanto à parte de algoritmia.

fazes um ciclo que percorra a string toda e que conta o numero de vezes que cada letra aparece depois e só dizer quais foram as 3 letras que mais vezes apareceram.

és capaz de ter que usar um array  para armazenar a letra que é e o numero de vezes que essa letra apareceu  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fica aqui um algoritmo para fazer isso mas com palavras em vez de letras.

string = "oi oi oi oi ole ola ola ola ola"

qtds = {}
for palavra in string.split():
    if qtds.has_key(palavra) == False: qtds[palavra] = 0
    qtds[palavra] += 1
maior = [None ,[]]
for palavra in qtds:
    if qtds[palavra] > maior[0]:
        maior[0] = qtds[palavra]
        maior[1] = [palavra]
    elif qtds[palavra] == maior[0]:
        maior[1].append(palavra)

if len(maior[1]) > 1:
    msg = 'As palavras mais frequentes são "%s" e aparecem %i vezes' % ('", "'.join(maior[1]), maior[0])
else:
    msg = 'A palavra mais frequente é "%s" e aparece %i vezes' % (maior[1][0], maior[0])
print msg

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora