import java.util.*; public class Parenthesis { public boolean chkParenthesis(String A, int n) { if(n%2!=0){ return false; //奇数的情况 } Stack<Character> stack=new Stack<>(); //栈 for(int i=0;i<A.length();i++){ //遍历字符串 char s=A.charAt(i);//拿到的字符 if(s=='('){ //左括号,则添加 stack.push(s); }else if(s==')'){ //遇到右括号则出栈,但是在出栈前要考虑栈是不是有元素 if(stack.isEmpty()){ //栈为空非法 --->右括号先于左括号出现导致栈为空 return false; } stack.pop();//正常情况下,出栈 }else{ //遇到不是( ) 的情况,则代表出现了字母,非法 return false; } } return stack.isEmpty(); //最后只要返回栈是否为空即可,为空,则代表全部抵消,不为空,则代表有多余 } }