[pyar] [OT] - Checkeando parentesis balanceados.
Claudio Freire
klaussfreire en gmail.com
Vie Jun 18 14:38:11 ART 2010
2010/6/18 Daniel Moisset <dmoisset en machinalis.com>
> 2010/6/18 Mariano Garcia Berrotarán <garcia.berrotaran en gmail.com>:
> > mi pregunta es la siguiente:
> >
> > a alguien se le ocurre alguna forma de hacerlo usando list comprehension
> ?
>
> Si es obligatorio usar una comprehension te diria algo con esta idea...
>
La idea numpy es "tipo list comprehension".
Si se quiere puro list comprehension, se puede seguir una idea similar:
>>> def balanceado(s):
... cum = 0
... for balance in [ cum for c in s for cum in [cum + int(c=='(') -
int(c==')')] ]:
... if balance < 0:
... return False
... return balance == 0
...
>>>
>>>
... lines = [
... "(hola(chau))",
... "((",
... "()",
... "()()()",
... "((()(())()))",
... "((()(())())))",
... "(((()(())()))",
... ]
>>>
>>> for line in lines:
... if balanceado(line):
... print "balanceado:", line
... else:
... print "desbalanceado:", line
...
balanceado: (hola(chau))
desbalanceado: ((
balanceado: ()
balanceado: ()()()
balanceado: ((()(())()))
desbalanceado: ((()(())())))
desbalanceado: (((()(())()))
>>>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20100618/8c87a1b4/attachment.html>
More information about the pyar
mailing list