Python Data Structures: Balanced Parentheses help
I am making a few different solutions for the last project in python data structures and this is one of them. It works for 6 out of the 7 tests, and I can’t understand why it doesn’t work on the last. Here is my code: def balanced(expression): out1 = 0 for i in expression: if i == '(': out1 +=1 elif i == ')': out1 -= 1 if out1 == 0: return True else: return False print(balanced(input()))
There are several ways to take care of this issue. A simple way would be to return False if out1 is negative at any point. But if I remember correctly the task says you should use a stack.
I have found a different solution using a three strings which works. Thank you for your help.
Your code only checks whether the number of opening and closing parentheses are the same. It does not check sequence. So for the following it shows True instead of false: )1 (
Aleksei Radchenkov I know. I wrote "Your code only checks ...". Which is the reason it doesn't pass the test case.
Simon Sauter, oh right, I misread your comment, sorry... 😉
ubai no, not even close.
Simon Sauter, actually it does check sequence (test 7), I have just solved it, and it does require to check if there is ')' but no '(' even if there are equal amount of them.
Magnus4791, So your code is very near. What you need to add, is to return False if "out" is negative at any point. Here is code that functions correctly(variable names are changed) : https://code.sololearn.com/cH15IFewR82T/?ref=app
balanced = lambda x :x =='(' or x == ')'
balanced = lambda x :x =='(' or x == ')' This is your answer. 💯