class Solution { public boolean isValid(String s) { /** 思路1:暴力求解 1.对字符串中的'{}','()','[]'做遍历替换 思路2:借助栈来求解 1.遍历字符串,每次都压入栈,压入栈时和栈顶元素做等值匹配 2.当第一次出现栈顶元素和遍历到的元素不匹配的时候,直接返回false 3.最终判断栈中是否还有元素,如果没有元素则为true,如果还有元素,则为false */ if(s.isEmpty()) return true; Stack<Character> stack=new Stack<Character>(); for(char c:s.toCharArray()){ if(c=='(') stack.push(')'); else if(c=='{') stack.push('}'); else if(c=='[') stack.push(']'); else if(stack.empty()||c!=stack.pop()) return false; } if(stack.empty()) return true; return false; }}