0
Balanced paranthesis
I have problem in this code ... Anyone plz help me with this code In this code, 7testcases ,5succed... def balanced(expression): #your code goes here list=[] for i in expression : if i=='(' : list.insert(0,i) l=len(list) c=0 for i in expression : if i==')': list.pop(0) c+=1 a=expression.index('(') b=expression.index(')') if l==c and a<b and list==[]: return 'True' else: return 'False' print(balanced(input()))
3 Answers
+ 4
I guess you should try to think of another simplest way, as you seems confuse...
very first part if your logic is almost rigtht, but last parts?
you should iterate over input string, and test at once for '(' and ')'... you could also use a counter rather than a list, but with a list, instead of insert use append method (converse of pop). ;)
try it again, and if you're still stuck, let me know else mark my answer as best and upvote :)
+ 2
You need an error handling for case when the code tries to remove the element from an empty list. Tip: try to use comparing with empty list or "try/except" statement.
+ 1
If you want to solve with stack:
class Stack:
def __init__(self):
self.items = []
def push(self, item):
self.items.insert(0, item)
def pop(self):
return self.items.pop(0)
s = Stack()
inp = input()
def balanced(inp):
try:
for i in inp:
if i == str("("):
s.push('(')
elif i == str(")"):
s.pop()
else:
continue
if len(s.items) == 0:
print(" True")
else:
print("False")
except:
print("False")
balanced(inp)