0

Someone can help in Balanced Parentheses im stuck:( this is my code

def balanced(expression): x = expression lst = [] parentheses_count = 0 for i in x: if i == '(': lst.append(i) parentheses_count += 1 elif i == ')': lst.append(i) parentheses_count -= 1 if parentheses_count == 0: return True elif parentheses_count < 0: return False else: return False print(balanced(input()))

24th Aug 2022, 7:29 PM
Josué Varela
Josué Varela - avatar
3 Answers
+ 1
When i is a closing parenthesis ')' I think you should do lst.pop(-1) instead of lst.append(i). You will have to check for errors. Consider what happens with the pop in case the parentheses are out of order, such as '))('. In that case you would return false right away.
24th Aug 2022, 7:34 PM
Brian
Brian - avatar
+ 1
Brian I'm still stuck it's very hard xd
24th Aug 2022, 7:39 PM
Josué Varela
Josué Varela - avatar
+ 1
You can do it without keeping track of parentheses_count. Use the list as a stack, and check in strategic places whether the list is empty. In some places it should not be empty. if lst==[]: break At the end It should be empty. if lst==[]: return true return false
24th Aug 2022, 7:47 PM
Brian
Brian - avatar