Python code for testing well parenthesized expression
David Smith
dns4 at cornell.edu
Tue Jul 14 09:08:12 EDT 2009
Jeremy Sanders wrote:
> candide wrote:
>
>> I'm trying to implement in Python a function testing if an expression is
>> well parenthesized. For instance the expression "zx4er(1(er(Yy)ol)ol)ik"
>> is correctly parenthesized but this one "zx(4er(1(er(Yy)ol)ol)ik" is not.
>>
>> My code follows at the end.
>>
>> If you have a better algorithm or a better Python code (I'm a beginner in
>> the Python world), don't hesitate ...
>
> Don't you want to just test that the number of "("s equals the number of
> ")"s or am I missing the point?
>
>>>> a='aAAA(bbb(cc)))'
>>>> a.count('(') == a.count(')')
>
> Jeremy
>
Using straight counting, )z))ab(c(ew( would be well parenthesized. I
suspect a better way would be to iterate over the string using a balance
counter that increases 1 for every open, decreases 1 for every close. A
negative balance at any moment would indicate an error as well as an
ending balance greater than 0.
--David
More information about the Python-list
mailing list