logo CodeStepByStep logo

check_balance

Language/Type: Python list collections string

Write a function named check_balance that accepts a string of Java source code and uses a list to check whether the braces/parentheses are balanced. (You do not need to know Java programming to solve this exercise, just follow the rules below.)

Every ( or { must be closed by a } or ) in the opposite order. Return the index at which an imbalance occurs, or -1 if the string is balanced. If any ( or { are never closed, return the string's length.

Here are some example calls:

#      index   0123456789012345678901234567890
check_balance("if (a(4) > 9) { foo(a(2)); }")      # returns -1 because balanced
check_balance("for (i=0;i<a(3};i++) { foo{); )")   # returns 14 because } out of order
check_balance("while (true) foo(); }{ ()")         # returns 20 because } doesn't match any {
check_balance("if (x) {")                          # returns 8 because { is never closed

Constraints: Use a single list as auxiliary storage.

Function: Write a Python function as described, not a complete program.

You must log in before you can solve this problem.

Log In

Need help?

Stuck on an exercise? Contact your TA or instructor.

If something seems wrong with our site, please

Is there a problem? Contact us.