力扣150. 逆波兰表达式求值

在这里插入图片描述
思路:又是有消消乐的感觉,只不过这里是遇到一个操作符号,就消掉两个数字合并成一个新数;所以想到用栈结构来处理;用一个栈来放当前遍历过的数字,当遍历遇到操作符时,就把前面最新入栈的两个数取出来操作,操作完的结果再放回栈内。最后栈内只剩下一个值就是最终的计算结果


class Solution {
    public int evalRPN(String[] tokens) {
        Stack<Integer> stack = new Stack();
        for(String str : tokens){
        //如果不是操作符号,就把当前数字入栈,等待被取出操作
            if(!"+".equals(str) && !"-".equals(str) && !"*".equals(str) && !"/".equals(str)){
                stack.push(Integer.valueOf(str));
            }
            //如果遇到操作符号,就把前面入栈的两个数取出来操作,操作完的结果再放回栈内
            else {
                int num1 = stack.pop();
                int num2 = stack.pop();
                int pushNum = 0;
                //看例子,num1,num2先后顺序理解一下先;num1是后入栈的,所以放在操作号后面
                if("+".equals(str)) {
                    pushNum = num2 + num1;
                }else if("-".equals(str)){
                    pushNum = num2 - num1;
                }else if("*".equals(str)){
                    pushNum = num2 * num1;
                }else if("/".equals(str)){
                    pushNum = num2 / num1;
                }
                //操作完的结果再放回栈内
                stack.push(pushNum);

            }
        }
        //最后栈内只剩下一个值就是最终的计算结果
        return stack.pop();

    }
}


相关推荐

  1. 刷题本』:波兰表达式

    2024-04-03 05:46:05       40 阅读
  2. 【数据结构与算法】 150. 波兰表达式

    2024-04-03 05:46:05       10 阅读
  3. 经典150题第五十五题:波兰表达式

    2024-04-03 05:46:05       16 阅读
  4. 150. 波兰表达式

    2024-04-03 05:46:05       37 阅读
  5. Leetcode 150波兰表达式

    2024-04-03 05:46:05       9 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-03 05:46:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-03 05:46:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-03 05:46:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-03 05:46:05       20 阅读

热门阅读

  1. cesium 加载gltf并实时改变位置 CallbackProperty方式

    2024-04-03 05:46:05       15 阅读
  2. stm32_中断讲解

    2024-04-03 05:46:05       16 阅读
  3. Android 14.0 解锁状态下禁止下拉状态栏功能实现

    2024-04-03 05:46:05       11 阅读
  4. Mybatis 中的 Executor

    2024-04-03 05:46:05       15 阅读
  5. 常见docker使用命令

    2024-04-03 05:46:05       14 阅读
  6. 软件设计原则:依赖倒置

    2024-04-03 05:46:05       14 阅读
  7. 【前端推荐】node.js有哪些命令

    2024-04-03 05:46:05       14 阅读
  8. 谈谈SSH整合--一起学习吧之系统架构

    2024-04-03 05:46:05       15 阅读
  9. C++11:非常完美的完美转发以及新的类功能

    2024-04-03 05:46:05       14 阅读
  10. 计算机网络-文件读写——沐雨先生

    2024-04-03 05:46:05       13 阅读
  11. docker 安装elasticsearch密码配置

    2024-04-03 05:46:05       14 阅读