Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Você está aqui: Python ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Pilhas

Escreva um programa Python que usa uma pilha para testar se uma palavra é palíndroma - Desafio de Programação Resolvido em Python

Quantidade de visualizações: 87 vezes
Pergunta/Tarefa:

Palíndromo é uma palavra, frase ou número que permanece igual quando lida de trás para diante. Por extensão, palíndromo é qualquer série de elementos com simetria linear, ou seja, que apresenta a mesma sequência de unidades nos dois sentidos.

Uma palavra palíndroma é aquela cuja sequência de letras é simétrica, permitindo uma leitura idêntica da esquerda para a direita ou da direita para a esquerda: ovo, osso, reler, anilina.

Escreva um programa Python que usa uma pilha para testar se uma palavra é palíndroma. Você pode usar a abordagem que desejar na criação da pilha, ou seja, você pode usar uma pilha criada a partir de um array, o objeto list ou uma lista simplesmente encadeada (lista ligada).

Sua saída deverá ser parecida com:

Informe uma palavra ou frase: reler
A palavra ou frase informada é palíndroma

Informe uma palavra ou frase: estudar
A palavra ou frase informada não é palíndroma
Resposta/Solução:

Veja a resolução comentada deste exercício usando Python:

# definição da classe Pilha
class Pilha:
  # método construtor
  def __init__(self):
    # cria uma lista de elementos vazia
    self.elementos = []

  # método usado para empilhar um novo elemento na pilha
  def empilhar(self, elemento):
    self.elementos.append(elemento)
         
  # método usado para desempilhar um elemento da pilha
  def desempilhar(self):
    return self.elementos.pop()

  # método para verificar se a pilha está vazia ou não
  def vazia(self):
    return (self.elementos == [])

  # método que retorna o topo da pilha
  def retornar_topo(self):
    return self.elementos[-1]

  # método para mostrar a representação textual da pilha
  def __str__(self):
    return str(self.elementos)

# função que recebe uma palavra como argumento e usa
# uma pilha para testar se a palavra informada é palíndroma
# ou não
def testar_palindromo(texto):
  # vamos criar uma nova pilha
  pilha = Pilha()
  palindromo = False
     
  # percorremos todos os caracteres do texto informado
  # e colocamos cada um na pilha
  for caractere in texto:
    pilha.empilhar(caractere)

  # agora percorremos os caracteres do texto novamente, um de cada
  # vez e comparamos com o caractere removido da pilha
  for caractere in texto:
    if caractere == pilha.desempilhar():
      palindromo = True
    else:
      palindromo = False
             
  return palindromo

# método principal
def main():
  # vamos pedir para o usuário informar uma palavra ou frase
  palavra = input("Informe uma palavra ou frase: ")

  # vamos testar se a palavra ou frase é palíndroma
  if testar_palindromo(palavra):
    print("A palavra ou frase informada é palíndroma")
  else:
    print("A palavra ou frase informada não é palíndroma")

if __name__== "__main__":
  main()


Link para compartilhar na Internet ou com seus amigos:

Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Python

Veja mais Dicas e truques de Python

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 25 usuários muito felizes estudando em nosso site.