zoukankan      html  css  js  c++  java
  • 150. Evaluate Reverse Polish Notation

    一、题目

      1、审题

      2、分析

        给出逆波兰表达式(即运算数写前面,操作符写后边),求出运算的正确结果。

    二、解答

      1、思路:

          采用一个 Stack 存储操作数,当碰到运算符时,出栈栈顶的两个元素进行运算即可。最终遍历完数组后, Stack 中存在的唯一一个数即为结果。

        public int evalRPN(String[] tokens) {
            int len = tokens.length;
            if(len == 0)
                return 0;
            
            Set<String> operSet = new HashSet<>(Arrays.asList("+", "-", "*", "/"));
            
            Stack<Integer> stack = new Stack<>();
            int result = 0;
            for (int i = 0; i < len; i++) {
                
                if(operSet.contains(tokens[i])) {
                    int num1 = stack.pop();
                    int num2 = stack.pop();
                    if(tokens[i].equals("+"))
                        result = num2 + num1;
                    else if(tokens[i].equals("-"))
                        result = num2 - num1;
                    else if(tokens[i].equals("*"))
                        result = num2 * num1;
                    else
                        result = num2 / num1;
                    stack.add(result);
                }
                else {
                    stack.add(Integer.valueOf(tokens[i]));
                }
            }
            return stack.pop();
        }
  • 相关阅读:
    安全预警-防范新型勒索软件“BlackRouter”
    线程入门
    线程状态
    支付开发总结
    springboot处理date参数
    函数接口
    Excel通用类工具(一)
    Excel通用类工具(二)
    spring bean生命周期
    springboot整合netty(二)
  • 原文地址:https://www.cnblogs.com/skillking/p/9780702.html
Copyright © 2011-2022 走看看