[pyar] [OT] - Checkeando parentesis balanceados.
Federico Heinz
fheinz en vialibre.org.ar
Sab Jun 19 10:07:56 ART 2010
On 18/06/2010, Daniel Moisset wrote:
> Si es obligatorio usar una comprehension te diria algo con esta
> idea...
> def balanceado(s):
> profundidades = [s[:index+1].count("(")-s[:index+1].count(")")
> for index in xrange(len(s)) ]
> return (not s) or (all(p>=0 for p in profundidades) and
> profundidades[-1]=0)
Esto debería ser lineal, pero usa una variable global que estoy
seguro que se puede reemplazar por algo más cheto.
c = 0
def balanceado(s):
global c
c = 0
def f(x):
global c
c = c+{'(': 1, ')': -1}[x]
return c
p = [f(x) for x in s]
return (not s) or (all(x >= 0 for x in p) and p[-1] == 0)
Fede
More information about the pyar
mailing list