解决思路
栈

使用一个栈作为辅助的空间
一旦遇到左方向的括号,就入栈。
一旦遇到右方向的括号
就出栈一个元素,看与当前的元素是否匹配
一直到字符串的末尾,到了末尾的时候判断栈中是否为空
对于弹出元素不匹配的情况,直接返回false
public boolean isValid(String s) {//使用栈这个数据结构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{//如果栈空 直接返回falseif(stack.isEmpty())return false;char c = stack.pop();char match;//判断应该match的字符switch(s.charAt(i)){case ']': match = '[';break;case '}': match = '{';break;default:match = '(';}//如果不匹配直接返回falseif(match != c)return false;}}//如果此时栈中还有元素 报错if(stack.isEmpty())return true;return false;}

