[pyar] [OT] - Checkeando parentesis balanceados.

Federico Heinz fheinz en vialibre.org.ar
Sab Jun 19 16:31:32 ART 2010


On 19/06/2010, Federico Heinz wrote:
> Esto debería ser lineal, pero usa una variable global que estoy
> seguro que se puede reemplazar por algo más cheto.

*Esto* es lo que estaba buscando. No usa exactamente list
comprehension, pero espero que el uso de 'all' califique.

def acc(n):
    value = [n]
    def addacc(m):
        value[0] += m
        return value[0]
    return addacc

def balanceado(s):
    c = acc(0)
    return (not s) or (all(c({'(':1 ,')':-1}[x]) >= 0 for x in s) and c(0) == 0)

	Fede



More information about the pyar mailing list