20. Valid Parentheses
Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid
StringExample 1:
- Input:
s = "()" - Output:
true
Example 2:
- Input:
s = "()[]{}" - Output:
true
Example 3:
- Input:
s = "(]" - Output:
false
Example 4:
- Input:
s = "([])" - Output:
true
Example 5:
- Input:
s = "([)]" - Output:
false
Constraints:
1 <= s.length <= 10^4sconsists of parentheses only ‘()[]’.
Approach
Solution
class Solution:
def isValid(self, s: str) -> bool:
stack = []
pairs = {")": "(", "]": "[", "}": "{"}
for c in s:
if c in pairs:
if stack and pairs[c] == stack[-1]:
stack.pop()
else:
return False
else:
stack.append(c)
return True if not stack else False