利用栈后进先出特性进行括号匹配

import java.util.*;


public class Solution {
    /**
     * 
     * @param s string字符串 
     * @return bool布尔型
     */
    public boolean isValid (String s) {
        // write code here
        Stack<Character> stack = new Stack<>();
        for(int i=0;i<s.length();i++){
          	//左边括号入栈
            if(s.charAt(i)=='('||s.charAt(i)=='['||s.charAt(i)=='{'){
                stack.push(s.charAt(i));
            }else{
              //判断栈是否为空,防止越界
                if(stack.isEmpty()){
                    return false;
                }
                if(s.charAt(i)==')'){
                    if(stack.peek() == '('){
                        stack.pop();
                    }else{
                        return false;
                    }
                }else if(s.charAt(i)==']'){
                    if(stack.peek() == '['){
                        stack.pop();
                    }else{
                        return false;
                    }
                }else{
                    if(stack.peek() == '{'){
                        stack.pop();
                    }else{
                        return false;
                    }
                }
            }
        }
      //判断是否完全匹配
        if(!stack.isEmpty()){
            return false;
        }
        return true;
    }
}