Facebook
From jose, 3 Years ago, written in Python.
Embed
Download Paste or View Raw
Hits: 140
  1.  
  2. # diccionario para saber cual es el cierre de cada simbolo
  3. simbols = {
  4.     "[": "]",
  5.     "(": ")",
  6.     "{": "}"
  7. }
  8. # devuelve True si es un simbolo de apertura si no es apertura devuelve None
  9. def isopenSimbol(key):
  10.     if key in simbols:
  11.         return True
  12.     else:
  13.         return False
  14.  
  15. def parseString(stringtest):
  16.     # array que usamos como una pila LIFO
  17.     openStack = []
  18.     for car in range(len(cadena)):
  19.         currSimbol = stringtest[car]
  20.         print(openStack)
  21.         if isopenSimbol(currSimbol):
  22.             openStack.append(currSimbol)
  23.         else:
  24.             stacksize = int(len(openStack)) # tamaño actual de la pila
  25.             if stacksize>0: # si contiene elementos de apertura comparamos con el elemento detectado de cierre actual
  26.                 lastOpen = openStack[stacksize-1]
  27.                 if simbols[lastOpen] == currSimbol: # si el caracter actual es un caracter de cierre del ultimo abierto lo quitamos de la pila
  28.                     openStack.pop() # quitamos el ultimo elemento de la pila
  29.     if len(openStack)>=1:
  30.         return False
  31.     else:
  32.         return True
  33.  
  34.  
  35. ## inicio
  36. cadena = input("Introduce cadena ")
  37. tamcadena = len(cadena)
  38.  
  39. if tamcadena % 2 != 0 and isopenSimbol(cadena[0]) == False: # numero de elementos impares o el primero es un cierre
  40.     print("Error")
  41. else:
  42.     if parseString(cadena):
  43.         print(f"cadena  {cadena} correcta")
  44.     else:
  45.         print(f"cadena  {cadena} incorrecta")
  46.  

Replies to Ejercicio corchetes balanceados rss

Title Name Language When
Re: Ejercicio corchetes balanceados Tiny Agouti python 3 Years ago.
Re: Ejercicio corchetes balanceados jose python 3 Years ago.