Python - exercício (urgente)

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
 
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.
 
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...
 
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:
Back
Topo