有效的括号【简单】
题意
1、就是括号可以互相包含,但不能参差摆放,如下例:
"{[]}()" true
({)} false
思路
1、就是多层if判断
2、如果有[或{或(就把相应另外一半放进去。
3、最后判断这个栈是否为空,如果为空,就是有效的括号。如果不为空,就不是有效的括号
代码
class Solution {
public boolean isValid(String s) {
Deque<Character> que = new LinkedList<>();
char ch ;
for(int i =0;i<s.length();i++){
ch = s.charAt(i);
// 如果遇到左括号就直接入栈,并把右括号放进去
if(ch=='('){
que.push(')');
}else if (ch=='{'){
que.push('}');
}else if(ch=='['){
que.push(']');
}else if(que.isEmpty() || que.peek()!=ch){
return false;
}else{
//如果出现的右括号,看看能不能和栈顶元素进行匹配。匹配就取出
que.pop();
}
}
// 最后判断栈中元素是否匹配
return que.isEmpty();
}
}