# 有效的括号

<p>给定一个只包括 <code>'('</code>，<code>')'</code>，<code>'{'</code>，<code>'}'</code>，<code>'['</code>，<code>']'</code> 的字符串 <code>s</code> ，判断字符串是否有效。</p><p>有效字符串需满足：</p><ol>	<li>左括号必须用相同类型的右括号闭合。</li>	<li>左括号必须以正确的顺序闭合。</li></ol><p> </p><p><strong>示例 1：</strong></p><pre><strong>输入：</strong>s = "()"<strong><br />输出：</strong>true</pre><p><strong>示例 2：</strong></p><pre><strong>输入：</strong>s = "()[]{}"<strong><br />输出：</strong>true</pre><p><strong>示例 3：</strong></p><pre><strong>输入：</strong>s = "(]"<strong><br />输出：</strong>false</pre><p><strong>示例 4：</strong></p><pre><strong>输入：</strong>s = "([)]"<strong><br />输出：</strong>false</pre><p><strong>示例 5：</strong></p><pre><strong>输入：</strong>s = "{[]}"<strong><br />输出：</strong>true</pre><p> </p><p><strong>提示：</strong></p><ul>	<li><code>1 <= s.length <= 10<sup>4</sup></code></li>	<li><code>s</code> 仅由括号 <code>'()[]{}'</code> 组成</li></ul>

## template

```python
class Solution:
	def isValid(self, s: str) -> bool:
		parentheses = [
			'(', '[', '{',
			')', ']', '}'
		]
		i = 0
		sum = [0, 0, 0]
		top = []
		while i < len(s):
			c = s[i]
			j = 0
			while j <= 2:
				if c == parentheses[j]:
					top.append(j)
					sum[j] += 1
				elif c == parentheses[j+3]:
					if len(top) == 0 or top[len(top)-1] != j:
						return False
					top.pop()
					sum[j] -= 1
				j += 1
			i += 1
		if sum[0] != 0 or sum[1] != 0 or sum[2] != 0:
			return False
		else:
			return True
# %%
s = Solution()
print(s.isValid(s = "()[]{}"))
```

## 答案

```python

```

## 选项

### A

```python

```

### B

```python

```

### C

```python

```