1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Python - exercício (urgente)

Discussão em 'Programação' iniciada por xmicron, 1 de Novembro de 2012. (Respostas: 5; Visualizações: 1353)

  1. xmicron

    xmicron Power Member

    Boas pessoal, estou a tentar fazer um exercício mas como ainda não sei trabalhar muito bem com o python estou a precisar de uma mãozinha:
    4. São exemplos de palavras simétricas ’abba’,’a’,’aa’,’aba’ ou ’aabbaa’, não são
    palavras simétricas ’ab’,’abca’.

    (c) Crie uma função inteira psim(stri)-> int que devolve o índice do caracter
    que define a posição de simetria. Por exemplo psim(’abbba’) == 2,
    psim(’abbxhxba’) == 4, mas que para palavras pares ou não simétricas
    devolve -1, ou seja psim(’abba’) == -1, e psim(’abbca’) == -1.

    Desde já obrigado pessoal
     
  2. Geedunk

    Geedunk Power Member

    Não foste nada claro, no primeiro paragrafo disses que 'abba' é simétrico, depois no disses que 'abba' == -1, não consegui entender.
    Mas para simetria é simples, necessitas sempre de comparar a primeira com a última palavra, e verificar se são iguais ou não. Tão simples quanto isso.

    por exemplo:
    str[0] == str[-1]

    Podes usar funções recursivas, penso que nesse caso funciona muito bem.
    Pensa no assunto.
     
  3. nunoemanuel

    nunoemanuel Power Member

    Código:
    def psim(stri):
        if len(stri)%2.0 == 0 or len(stri)==1:
    	return -1
        for i in range(len(stri)/2):
            if stri[i] != stri[len(stri)-1-i]:
                return -1
        return len(stri)/2
    
    Feito sem testar, não deve estar muito longe...
     
  4. xmicron

    xmicron Power Member

    Obrigado Nuno, funcionou logo, 5 estrelas, geedunk, nao fui eu que fiz o exercicio, deram-mo assim na faculdade, tb acho que está um bocado mal formulada a questão.
     
    Última edição: 2 de Novembro de 2012
  5. Mach4_PT

    Mach4_PT Power Member

    Não te esqueças de por o nome do nunoemanuel em vez do teu quando entregares o exercicio resolvido.
     
  6. xmicron

    xmicron Power Member

Partilhar esta Página