题目:
答案:
本体可使用栈的结构完成.
遇到左括号入栈,遇到右括号出栈.
要是出栈元素和前一个元素不匹配则是括号匹配不合法.
若栈为空还要出栈,
或者整个过程结束,栈不为空,则说明左右括号数量不匹配
public static boolean isValid(String s) { Stack<Character> stack = new Stack<>(); for(int i=0;i<s.length();i++){ char c = s.charAt(i); if(c=='(' || c=='[' || c=='{'){ stack.push(c); }else{ if(stack.isEmpty()){ return false; } char top=stack.pop(); if(c==')'&&top!='('){ return false; } if(c==']'&&top!='['){ return false; } if(c=='}'&&top!='{'){ return false; } } } return stack.isEmpty(); }