We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents 0c56c4e + 304e2bc commit 53f916dCopy full SHA for 53f916d
Stack Algorithms/Balanced Parenthesis Problem/Python/balanced_parenthesis.py
@@ -0,0 +1,21 @@
1
+def balanced(string):
2
+ opening_parens = [ '(', '[', '{' ]
3
+ closing_parens = [ ')', ']', '}' ]
4
+ parens_dict = dict(zip(opening_parens, closing_parens))
5
+
6
+ stack = []
7
+ for char in string:
8
+ if char in opening_parens:
9
+ stack.append(char)
10
+ elif char in closing_parens:
11
+ if not stack or char != parens_dict[stack.pop()]:
12
+ return False
13
+ return not stack
14
15
+if __name__ == '__main__':
16
+ balanced_expression = '{[()()[]{}((()))]}'
17
+ print balanced(balanced_expression)
18
+ imbalanced_expression = '{[()()[]{}((()))]}}'
19
+ print balanced(imbalanced_expression)
20
+ invalid_expression = '{[()()[]{}((()))]}}{'
21
+ print balanced(invalid_expression)
0 commit comments