Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.StringReader;
- import java.util.Scanner;
- import java.util.Stack;
- public class RPN {
- Stack<Integer> stack = new Stack<Integer>();
- Stack<Integer> evaluate(String expression) {
- StringReader sr = new StringReader(expression);
- Scanner scanner = new Scanner(sr);
- while (scanner.hasNext()) {
- String token = scanner.next();
- if (token.equals("+")) {
- int a = stack.peek();
- stack.pop();
- int b = stack.peek();
- stack.pop();
- stack.push(a + b);
- } else if (token.equals("-")) {
- int a = stack.peek();
- stack.pop();
- int b = stack.peek();
- stack.pop();
- stack.push(a - b);
- } else if (token.equals("")) {
- int a = stack.peek();
- stack.pop();
- int b = stack.peek();
- stack.pop();
- stack.push(a * b);
- } else if (token.equals("/")) {
- int a = stack.peek();
- stack.pop();
- int b = stack.peek();
- stack.pop();
- stack.push(a / b);
- } else {
- stack.push(Integer.parseInt(token));
- }
- }
- return stack;
- }
- void clear() {
- stack.clear();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement