View Code of Problem 94

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.


Back to problem 94