[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