import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Scanner; import java.util.Stack; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String s = scanner.nextLine(); Stack<String> stack = new Stack(); for(int i=0; i<s.length(); i++) { if(s.charAt(i) == ' ') { continue; } if(s.charAt(i) != ')') { stack.push(String.valueOf(s.charAt(i))); }else { List<Integer> list = new ArrayList<Integer>(); String str = stack.pop(); int temp = 0; while(!str.equals("(")) { if(str.equals("+")) { for(int k: list) { temp += k; } }else if(str.equals("-")) { temp = list.get(list.size()-1); for(int k=0; k<list.size()-1; k++) { temp -= list.get(k); } }else if(str.equals("*")) { temp = 1; for(int k: list) { temp *= k; } }else if(str.equals("/")) { temp = list.get(list.size()-1); for(int k=0; k<list.size()-1; k++) { temp /= list.get(k); } }else { list.add(Integer.valueOf(str)); } str = stack.pop(); } stack.push(temp+""); } } System.out.println(stack.pop()); } } |
Double click to view unformatted code.