0

Balanced Parentheses

#Question from SoloLearn ==================================================================== Parentheses are balanced, if all opening parentheses have their corresponding closing parentheses. Given an expression as input, we need to find out whether the parentheses are balanced or not. For example, "(x+y)*(z-2*(6))" is balanced, while "7-(3(2*9))4) (1" is not balanced. The problem can be solved using a stack. Push each opening parenthesis to the stack and pop the last inserted opening parenthesis whenever a closing parenthesis is encountered. If the closing bracket does not correspond to the opening bracket, then stop and say that the brackets are not balanced. Also, after checking all the parentheses, we need to check the stack to be empty -- if it's not empty, then the parentheses are not balanced. Implement the balanced() function to return True if the parentheses in the given expression are balanced, and False if not. Sample Input: (a( ) eee) ) Sample Output: False ==================================================================== Solution ==================================================================== string = input() stack = [] i = 0 length = len(string) while i <= length-1: if string[i] == '(': stack.append('(') i = i + 1 elif string[i] == ')' and len(stack) != 0: stack.pop() i = i + 1 else: i = i + 1 continue if(len(stack) == 0): print("True") else: print("False") ======================================================================= The above code is not working for one of the test cases. Can someone solve it for me??

21st Aug 2021, 9:07 AM
Pranav Nigam
Pranav Nigam - avatar
2 Antworten
+ 1
You code output incorrectly when there are more end brackets. Input like this '())' will output true.
21st Aug 2021, 9:25 AM
你知道規則,我也是
你知道規則,我也是 - avatar
0
Ooo got it. Thank you CarrieForle
21st Aug 2021, 9:35 AM
Pranav Nigam
Pranav Nigam - avatar