Stack.push():压入栈中
Stack.pop():弹出栈顶元素并删除
Stack.peek():弹出栈顶元素但不删除

java
class Solution {
public boolean isValid(String s) {
Stack<Character> stack=new Stack<>();
for(int i=0;i<s.length();i++){
char ch=s.charAt(i);
if(ch=='('||ch=='{'||ch=='['){
stack.push(ch);
}else{
// 此时是右括号
if(stack.empty()){ //栈空但是还有右括号
return false;
}
char topstack=stack.peek(); //查询栈顶元素
if((topstack=='(' && ch==')') ||(topstack=='{' && ch=='}') || (topstack=='[' && ch==']') ){
stack.pop();//弹出栈顶元素并删除
}else{
//匹配失败
return false;
}
}
}
if(!stack.empty()){ //栈不空但是已经没有右元素了
return false;
}
return true;
}
}