class Solution {
    public int evalRPN(String[] tokens) {
        Stack<Integer> stack = new Stack<>();
        for (int i = 0 ;i < tokens.length;i++){
            String str = tokens[i];    //利用数组  依次运算
            if (str.length() == 1){   //判断长度是否为1
                char ch = str.charAt(0);
                if (ch-'0' >= 0 && ch - '0' <= 9 ){   //判断是否为整数
                    Integer a = Integer.valueOf(str);
                    stack.push(a);
                }                    
                else{     //为运算符
                    if (stack.size() < 2)  //判断边界情况 :整数个数小于2 或者运算完毕还存在运算符的情况  返回0;
                        return 0;
                    int num2 = stack.pop();
                    int num1 = stack.pop();
                    switch(ch){
                        case '+':                            
                            stack.push(num1 + num2);
                            break;
                        case '-':
                            stack.push(num1 - num2);
                            break;
                        case '*':
                            stack.push(num1 * num2);
                            break;
                        case '/':
                            stack.push(num1 / num2);
                            break;
                    }
                    
                }
            }else{
                int n = Integer.valueOf(str);
                stack.push(n);
            }
        }
        return stack.pop();
    }
}

Leetcode 逆波兰式表达式求值相关推荐

  1. C语言编程对一个逆波兰式进行求值,算式与逆波兰式

    致憨憨的从前 当年,老师布置一道作业:编写一个计算器,要求输入算式,给出结果.算式中只包含+-*/^这几个运算符,算式中不含负数.由于是Python课程,我很快给出了解题方式,如下: while Tr ...

  2. LeetCode:逆波兰式;

    150. 逆波兰表达式求值 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式. 请你计算该表达式.返回一个表示表达式值的整数. 注意: 有效的算符为 '+'.'-'.' ...

  3. LeetCode: 150:逆波兰表示法求值。

    题目 根据逆波兰表示法,求表达式的值. 有效的运算符包括 +, -, *, / .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 说明: 整数除法只保留整数部分. 给定逆波兰表达式总是有效的.换 ...

  4. 逆波兰式数学表达式求解

    逆波兰式数学表达式求解 //输入逆波兰式表达式 #include<iostream> #include<string.h> using namespace std; //函数表 ...

  5. 中缀表达式转换成逆波兰式

    栈的应用:中缀表达式转换成逆波兰式 小白前来报道!懒癌患者的第一篇博客,实属不易,先为自己鼓个掌. 编写程序,将任意一个合法的中缀表达式转换成逆波兰式. [问题描述]表达式计算是实现程序设计语言的基本 ...

  6. 使用栈解决的一类经典问题:表达式转换及求值;中缀表达式;前缀表达式,后缀表达式,中缀转前缀;中缀转后缀;后缀表达式求值;波兰式,逆波兰式

    文章目录 背景知识 表达式转换问题(考研经典) 一:手工转换 (1)中缀转前缀和中缀转后缀 (2)前缀转中缀和后缀转中缀 二:用栈实现表达式转换 (1)中缀转后缀 (2)中缀转前缀 表达式计算问题(使 ...

  7. 逆波兰表达式求值(leetcode 150)

    文章目录 1.问题描述 2.难度等级 3.热门指数 4.解题思路 5.实现示例 5.1 C++ 5.2 Golang 参考文献 1.问题描述 逆波兰表达式也叫后缀表达式. 有效的算符包括 +.-.*. ...

  8. 【Java】LeetCode 150. 逆波兰表达式求值 (后缀表达式)

    题目: 根据 逆波兰表示法,求表达式的值. 有效的算符包括 +.-.*./ .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 说明: 整数除法只保留整数部分. 给定逆波兰表达式总是有效的.换句话 ...

  9. 逆波兰式与表达式求值

    何为波兰式?何为逆波兰式? 如何与表达式求值联系起来? 波兰式.逆波兰式是数据结构和编译原理里面提到的知识点,我们平时的运算式都是这样的 2 + 3 * (5 - 1)-10(中缀表达式),这样表达式 ...

最新文章

  1. 市场忽略了糖价的爆发力
  2. python导入py文件-关于python:如何从另一个目录导入.py文件?
  3. Axure RP 8.0软件安装教程
  4. mysql多表分析_mysql多表查询实例结果及分析-2017.12.14
  5. 保障了罗振宇跨年演讲的PTS铂金版正式上线,产品体验全新升级
  6. 英语笔记:写作:Recreational activities
  7. java 获取端口号错误_尝试访问SPYDER中的pyspark时,获取错误“异常:Java网关进程在向驱动程序发送其端口号之前已退出”...
  8. 负载均衡原理与实践详解 第三篇 服务器负载均衡的基本概念-网络基础
  9. 使用Cargo入门rust语言
  10. IplImage结构及与其相关的读写函数
  11. JAVA删除文件或者文件夹
  12. windows平台下CMDER的安装和配置
  13. 《锋利的jQuery》二、jQuery的选择器
  14. 机器人编程按时巡线_一种智能巡线机器人以及控制方法与流程
  15. NRR52832 获取扫描请求
  16. 计算机办公软件基础知识题库,办公软件基础知识试题--题库.doc
  17. Tcp网络通信中各个状态的含义
  18. unity 图片改成astc 所有机型机型检测
  19. python足球联赛赛程_足球联赛赛程表工作表
  20. 你学了多久 Python 并能正式工作?

热门文章

  1. 自定义View实现支付宝芝麻信用页面功能
  2. 22个最佳WordPress网站预约插件(2023)
  3. arduino设备驱动程序安装失败
  4. 榴莲蜜文案:榴莲蜜水果发圈文案,卖水果榴莲蜜的朋友圈文案怎么写
  5. iCheck设置选中/取消选中
  6. 中国软件杯--解密陌生人(1)
  7. 各类好玩免费API推荐,强烈建议收藏
  8. C罗,一个关于坚持的故事
  9. 漫谈函数式编程:聊聊 OCaml
  10. [C语言]汉诺塔|递归