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 PythonQuantidade 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 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() |
![]() |
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 |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |