Informática, perguntado por prsc2020, 6 meses atrás

eu preciso de um programa em Python(ferramenta de linguagem de programação) onde o programa precisa pedir ao usuário para entrar com uma palavra/frase e verificar se o que foi escrito é ou não um palíndromo(a mesma forma de trás para frente, ex: ovo, ana, matam, ele, subi no onibus, o lobo ama bolo, e entre outras...)

OBS: precisa ser feito utilizando pilhas sequenciais!

Soluções para a tarefa

Respondido por Guaxinim5573
1

Resposta:

print("Diga uma frase ou palavra: ")

inp = str(input())

# Criação da pilha

pilha = []

for char in inp:

   # Coloca caracteres na pilha

   # Exemplo: Se a palavra for "ana" a pilha ficará ["a", "n", "a"]

   # Exemplo de não palíndromo: Se a palavra for "sara" a pilha ficará ["s", "a", "r", "a"]

   pilha.append(char)

# Se é um palindromo

palindrome = True

# Novamente vai passar por todos os caracteres da frase/palavra original

for char in inp:

   # Compara o primeiro caractere da palavra com o ultimo adicionado na pilha

   # Exemplo: Se a palavra for "ana" a comparação vai ser o primeiro "a" com o ultimo "a", isso na primeira vez do loop

   # Exemplo de não palíndromo: Se a palavra for "sara" a comparação vai ser o "s" com o "a", isso na primeira vez do loop

   if char == pilha.pop():

       continue

   else:

       # Se não for um palindromo, para o loop

       palindrome = False

       break

if palindrome:

   print("É um palíndromo.")

else:

   print("Não é um palíndromo.")

Explicação:

Usando o input (inp) você consegue receber a entrada do usuário, após isso você usa um loop para adicionar todos os caracteres na pilha.

Como a pilha usa LIFO (Last in First out, ultimo a entrar primeiro a sair) você precisa ir apenas desempilhando a lista usando .pop e comparando novamente com os caracteres do input do usuário.


prsc2020: mas assim, você não esta utilizando pilha para solucionar o problema colocado.
pois não consegui solucionar justamente por conta de ter que estar dentro de pilhas sequenciais!
se alguém ainda poder/conseguir solucionar irei agradecer demais!
Guaxinim5573: Editei minha resposta, agora usando pilhas para solucionar o problema
Perguntas interessantes