[pyar] [OT] - Checkeando parentesis balanceados.
Tordek
kedrot en gmail.com
Vie Jun 18 16:20:45 ART 2010
>
> def balance(s):
> cont = 0
> for x in s:
> if cont<0:
> return False
> else:
> cont = cont-1 if x == ')' else cont+1
> return True if cont == 0 else False
>
Pasa los tests, pero solo para el lenguaje de paréntesis balanceados; no
toma en cuenta que adentro del string hayan otros caracteres.
Yo tenía la misma solución que matigro:
def is_balanced(s):
count = 0
for c in s:
if c == '(':
count += 1
elif c == ')':
count -= 1
if count < 0:
return false
return count == 0
Si no, simil a Roberto, pero en haskell, dije:
import Data.List
heads = reverse . map reverse . tails . reverse
count = sum . map transform
transform '(' = 1
transform ')' = -1
transform _ = 0
balancedParentheses x = (count x == 0) && (all (>= 0) . map count . heads $
x)
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20100618/15737768/attachment.html>
More information about the pyar
mailing list