Can someone solve the following problem in C++ Write a function named checkBalance that accepts a string of source code and uses a stack to check whether the braces/parentheses are balanced. 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 0123456789012345678901234567890checkBalance("if (a(4) > 9) { foo(a(2)); }") // returns -1 because balancedcheckBalance("for (i=0;i<a(3};i++) { foo{); )") // returns 14 because } out of ordercheckBalance("while (true) foo(); }{ ()") // returns 20 because } doesn't match any {checkBalance("if (x) {") // returns 8 because { is never closed Constraints: Use a single stack as auxiliary storage.
Can someone solve the following problem in C++
Write a function named checkBalance that accepts a string of source code and uses a stack to check whether the braces/parentheses are balanced. 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 0123456789012345678901234567890checkBalance("if (a(4) > 9) { foo(a(2)); }") // returns -1 because balancedcheckBalance("for (i=0;i<a(3};i++) { foo{); )") // returns 14 because } out of ordercheckBalance("while (true) foo(); }{ ()") // returns 20 because } doesn't match any {checkBalance("if (x) {") // returns 8 because { is never closed
Constraints: Use a single stack as auxiliary storage.
Step by step
Solved in 4 steps with 2 images