1.2 KiB
1.2 KiB
layout, title, last_solved, category, leetcode_url, status
| layout | title | last_solved | category | leetcode_url | status |
|---|---|---|---|---|---|
| page | Valid Parenthesis | stack | https://leetcode.com/problems/valid-parentheses | Attempted |
Problem
Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.
An input string is valid if:
Open brackets must be closed by the same type of brackets.
Open brackets must be closed in the correct order.
Example 1:
Input: s = "()"
Output: true
Example 2:
Input: s = "()[]{}"
Output: true
Example 3:
Input: s = "(]"
Output: false
Example 4:
Input: s = "([)]"
Output: false
Example 5:
Input: s = "{[]}"
Output: true
Solution
{% highlight python %}
def isValid(self, s: str) -> bool:
stack = []
for c in s:
if c=='(':
stack.append(')')
elif c=='[':
stack.append(']')
elif c=='{':
stack.append('}')
elif not stack or stack.pop()!=c:
return False
return not stack
{% endhighlight %}
{% highlight python %}
{% endhighlight %}