rubenp Posted November 27, 2007 at 04:11 PM Report Share #150670 Posted November 27, 2007 at 04:11 PM 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 Link to comment Share on other sites More sharing options...
Soulsick Posted November 27, 2007 at 04:57 PM Report Share #150681 Posted November 27, 2007 at 04:57 PM 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 🙂 Link to comment Share on other sites More sharing options...
djthyrax Posted November 27, 2007 at 05:59 PM Report Share #150715 Posted November 27, 2007 at 05:59 PM 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 Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now