classSolution{publicintcalculate(String s){
s ="("+s+")";
Stack<String> stack =newStack();for(int i =0; i < s.length(); i ++){if(s.charAt(i)==' ')continue;if(s.charAt(i)!=')'){if(Character.isDigit(s.charAt(i))){int t =0;while(Character.isDigit(s.charAt(i))){
t = t *10+ s.charAt(i)-'0';
i +=1;}
i -=1;
stack.push(String.valueOf(t));continue;}
stack.push(s.charAt(i)+"");}elseif(s.charAt(i)==')'){
Stack<String> helper1 =newStack();
Stack<Character> helper2 =newStack();while(!stack.peek().equals("(")){
helper1.push(stack.pop());if(!stack.peek().equals("(")){
helper2.push(stack.pop().charAt(0));}}
stack.pop();int result = Integer.valueOf(helper1.pop());while(!helper1.isEmpty()){int r = Integer.valueOf(helper1.pop());
result = helper2.pop()=='+'? r + result : result - r;}
stack.push(String.valueOf(result));}}return Integer.valueOf(stack.peek());}}