# 有效的括号

给定一个只包括 '('')''{''}''['']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。

 

示例 1:

输入:s = "()"
输出:
true

示例 2:

输入:s = "()[]{}"
输出:
true

示例 3:

输入:s = "(]"
输出:
false

示例 4:

输入:s = "([)]"
输出:
false

示例 5:

输入:s = "{[]}"
输出:
true

 

提示:

## template ```java class Solution { public boolean isValid(String s) { char[] parentheses = { '(', '[', '{', ')', ']', '}' }; int i = 0; char c; int[] sum = { 0, 0, 0 }; Stack top = new Stack(); while (i < s.length()) { c = s.charAt(i); for (int j = 0; j <= 2; j++) { if (c == parentheses[j]) { top.push(j); sum[j]++; } else if (c == parentheses[j + 3]) { if (top.size() == 0 || top.peek() != j) { return false; } top.pop(); sum[j]--; } else { } } i++; } for (int j = 0; j <= 2; j++) { if (sum[j] != 0) { return false; } } return true; } } ``` ## 答案 ```java ``` ## 选项 ### A ```java ``` ### B ```java ``` ### C ```java ```