Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 92dd44b

Browse filesBrowse files
authored
Create 20 validParantheses.py
1 parent 0c8afbd commit 92dd44b
Copy full SHA for 92dd44b

File tree

Expand file treeCollapse file tree

1 file changed

+35
-0
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+35
-0
lines changed

‎January 2021/20 validParantheses.py

Copy file name to clipboard
+35Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
class Solution(object):
2+
def isValid(self, s):
3+
"""
4+
:type s: str
5+
:rtype: bool
6+
"""
7+
8+
# The stack to keep track of opening brackets.
9+
stack = []
10+
11+
# Hash map for keeping track of mappings. This keeps the code very clean.
12+
# Also makes adding more types of parenthesis easier
13+
mapping = {")": "(", "}": "{", "]": "["}
14+
15+
# For every bracket in the expression.
16+
for char in s:
17+
18+
# If the character is an closing bracket
19+
if char in mapping:
20+
21+
# Pop the topmost element from the stack, if it is non empty
22+
# Otherwise assign a dummy value of '#' to the top_element variable
23+
top_element = stack.pop() if stack else '#'
24+
25+
# The mapping for the opening bracket in our hash and the top
26+
# element of the stack don't match, return False
27+
if mapping[char] != top_element:
28+
return False
29+
else:
30+
# We have an opening bracket, simply push it onto the stack.
31+
stack.append(char)
32+
33+
# In the end, if the stack is empty, then we have a valid expression.
34+
# The stack won't be empty for cases like ((()
35+
return not stack

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.