Advertisement
cesarer

Ejemplo Pilas en Python

Aug 2nd, 2013
1,155
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #! /usr/bin/python
  2. '''
  3. Por Cesar Iglesias - 02/Ago/2013
  4. cesarer.blogspot.com
  5. '''
  6. print("Programa que determina si una palabra es palindromo")
  7. palabra = input("Ingrece la palabra a operar:")
  8. #se crea una lista, pero se utilizará como una pila con las funciones pop() y append()
  9. pila1 = list(palabra) #se usa la funcion list() para convertir cada letra de la palabra en un elemento de la pila
  10. #se declaran las listas vacias para poder despues introducir valores en ellas sin problemas
  11. pila2 = []
  12. pila3 = []
  13. #se utiliza la lógica de asumir que SI es un palindromo hasta que se demuestre lo contrario en caso de no serlo
  14. palindromo = True
  15. #primero, toma la pila1 original y la copia de forma invertida a pila2 y pila3
  16. for i in range(len(pila1)):
  17.     aux = pila1.pop() #guarda el valor del tope de "pila1" en "aux" y a la vez retira el valor de dicha pila
  18.     pila2.append(aux) #asigna el valor de "aux" en el final de la "pila2"
  19.     pila3.append(aux) #guarda el mismo valor ahora en "pila3"
  20. '''regresa los valores de "pila2" a "pila1"
  21. ahora existiran "pila1" con los valores originales y "pila3" con los valores invertidos'''
  22. for i in range(len(pila2)):
  23.     aux = pila2.pop()  
  24.     pila1.append(aux)
  25. '''Ahora se comparara letra por letra con la función pop() de las pilas 1 y 3
  26. si resulta que todas las palabras son iguales al sacarlas de las pilas
  27. entonces es un palindromo, si falla en una o mas, entonces no lo es'''
  28. for i in range(len(pila3)):
  29.     aux = pila1.pop()
  30.     aux2 = pila3.pop()
  31.     if (aux != aux2): #Este if anidado compara la igualdad entre "aux1" y "aux2"
  32.         palindromo = False
  33. if (palindromo == True): #Se muestra al usuario el resultado final
  34.     print("La palabra indroducida SI es un palindromo")
  35. else:
  36.     print("La palabra indroducida NO es un palindromo")
Advertisement
RAW Paste Data Copied
Advertisement