我用的是两个栈,后面也加了对括号不匹配的判断,但就是死活就是57
static String resolve(String expr) {
if(expr==null)
return null;
Stack<Integer> stack1=new Stack<>();
Stack<Integer> stack2=new Stack<>();
for(int i=0;i<expr.length();i++){
char c=expr.charAt(i);
if(c!=')'){
stack1.add((int)c);
}else{
if(!stack1.isEmpty()){
while(stack1.peek()!=(int)'(')
stack2.add(stack1.pop());
stack1.pop();
while(!stack2.isEmpty()){
stack1.add(stack2.pop());
}
}
}
}
String rs="";
boolean match=true;
while(!stack1.isEmpty()){
if(stack1.peek()=='('||stack1.peek()==')'){
match=false;
break;
}
rs+=stack1.pop();
}
return match?rs:"";
}