给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
- 每个右括号都有一个对应的相同类型的左括号。
示例 1:
示例 2:
示例 3:
提示:
- 1 <= s.length <= 104
- s仅由括号- '()[]{}'组成
代码
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 
 | class Solution {public boolean isValid(String s) {
 Stack<Character> st=  new Stack<>();
 char[] charArr = s.toCharArray();
 for(int i = 0; i < charArr.length; i++){
 if(charArr[i] == '(' || charArr[i] == '[' || charArr[i] == '{'){
 st.push(charArr[i]);
 }
 else{
 if(charArr[i] == ')' && !st.isEmpty() && st.peek() == '('){
 st.pop();
 }else if(charArr[i] == ']' &&!st.isEmpty() && st.peek() == '['){
 st.pop();
 }else if(charArr[i] == '}'&&!st.isEmpty() && st.peek() == '{'){
 st.pop();
 }else{
 return false;
 }
 }
 }
 return st.isEmpty();
 }
 }
 
 |