[pyar] [OT] - Checkeando parentesis balanceados.

Juan BC jbc.develop en gmail.com
Vie Jun 18 13:36:55 ART 2010


El 18/06/10 13:35, Alejandro Santos escribió:
> 2010/6/18 Juanjo Conti<jjconti en gmail.com>:
>> Si, la forma clasica es con una pila. Vas leyendo los tokens de a uno:
>>
>> Si es (: lo metes en la pila
>> Si es ): sacas uno de la pila
>>
>> Si el segundo paso da error por que no hay nada en la pila, entonces estån
>> desbalanceados.
>>
>> Era asi? Trate de recordarlo rapido.
>>
>
> Sip, y por ultimo verificar que la pila este vacia.
>


si =  "((())()())"
no= ")()()(())"

def balanceado(string):
     stack = []
     for c in string:
         if c == ")" and stack and stack[-1] == "(":
             stack.pop()
         else:
             stack.append(c)
     return not len(stack)

print si, balanceado(si)
print no, balanceado(no)



More information about the pyar mailing list