-
Notifications
You must be signed in to change notification settings - Fork 30
Expand file tree
/
Copy path20.ValidParentheses(Stack).py
More file actions
32 lines (27 loc) · 1.2 KB
/
20.ValidParentheses(Stack).py
File metadata and controls
32 lines (27 loc) · 1.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
"""
Given a string containing just the characters '(', ')', '{', '}', '[', ']',
determine if the input string is valid.
An input string is valid if:
1. Open brackets must be closed by the same type of brackets.
2. Open brackets must be closed in the correct order.
Note that an empty string is also considered valid.
Example:
Input: "()[]{}"
Output: true
"""
#Difficulty: Easy
#76 / 76 test cases passed.
#Runtime: 28 ms
#Memory Usage: 13.8 MB
#Runtime: 28 ms, faster than 82.23% of Python3 online submissions for Valid Parentheses.
#Memory Usage: 13.8 MB, less than 64.83% of Python3 online submissions for Valid Parentheses.
class Solution:
def isValid(self, s: str) -> bool:
parentheses = {'(':')', '{':'}', '[':']'}
stack = []
for b in s: # take bracket 'b' from string 's'
if b in parentheses: # if bracket in parentheses
stack.append(parentheses[b]) # append it's opposite to stack
elif not stack or stack.pop() != b: # if not stack or bracket not
return False # equal last bracket in stack
return not stack # if stack still exists -> False else True