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
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.
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!