Leetcode 逆波兰式表达式求值
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 逆波兰式表达式求值相关推荐
- C语言编程对一个逆波兰式进行求值,算式与逆波兰式
致憨憨的从前 当年,老师布置一道作业:编写一个计算器,要求输入算式,给出结果.算式中只包含+-*/^这几个运算符,算式中不含负数.由于是Python课程,我很快给出了解题方式,如下: while Tr ...
- LeetCode:逆波兰式;
150. 逆波兰表达式求值 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式. 请你计算该表达式.返回一个表示表达式值的整数. 注意: 有效的算符为 '+'.'-'.' ...
- LeetCode: 150:逆波兰表示法求值。
题目 根据逆波兰表示法,求表达式的值. 有效的运算符包括 +, -, *, / .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 说明: 整数除法只保留整数部分. 给定逆波兰表达式总是有效的.换 ...
- 逆波兰式数学表达式求解
逆波兰式数学表达式求解 //输入逆波兰式表达式 #include<iostream> #include<string.h> using namespace std; //函数表 ...
- 中缀表达式转换成逆波兰式
栈的应用:中缀表达式转换成逆波兰式 小白前来报道!懒癌患者的第一篇博客,实属不易,先为自己鼓个掌. 编写程序,将任意一个合法的中缀表达式转换成逆波兰式. [问题描述]表达式计算是实现程序设计语言的基本 ...
- 使用栈解决的一类经典问题:表达式转换及求值;中缀表达式;前缀表达式,后缀表达式,中缀转前缀;中缀转后缀;后缀表达式求值;波兰式,逆波兰式
文章目录 背景知识 表达式转换问题(考研经典) 一:手工转换 (1)中缀转前缀和中缀转后缀 (2)前缀转中缀和后缀转中缀 二:用栈实现表达式转换 (1)中缀转后缀 (2)中缀转前缀 表达式计算问题(使 ...
- 逆波兰表达式求值(leetcode 150)
文章目录 1.问题描述 2.难度等级 3.热门指数 4.解题思路 5.实现示例 5.1 C++ 5.2 Golang 参考文献 1.问题描述 逆波兰表达式也叫后缀表达式. 有效的算符包括 +.-.*. ...
- 【Java】LeetCode 150. 逆波兰表达式求值 (后缀表达式)
题目: 根据 逆波兰表示法,求表达式的值. 有效的算符包括 +.-.*./ .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 说明: 整数除法只保留整数部分. 给定逆波兰表达式总是有效的.换句话 ...
- 逆波兰式与表达式求值
何为波兰式?何为逆波兰式? 如何与表达式求值联系起来? 波兰式.逆波兰式是数据结构和编译原理里面提到的知识点,我们平时的运算式都是这样的 2 + 3 * (5 - 1)-10(中缀表达式),这样表达式 ...
最新文章
- 市场忽略了糖价的爆发力
- python导入py文件-关于python:如何从另一个目录导入.py文件?
- Axure RP 8.0软件安装教程
- mysql多表分析_mysql多表查询实例结果及分析-2017.12.14
- 保障了罗振宇跨年演讲的PTS铂金版正式上线,产品体验全新升级
- 英语笔记:写作:Recreational activities
- java 获取端口号错误_尝试访问SPYDER中的pyspark时,获取错误“异常:Java网关进程在向驱动程序发送其端口号之前已退出”...
- 负载均衡原理与实践详解 第三篇 服务器负载均衡的基本概念-网络基础
- 使用Cargo入门rust语言
- IplImage结构及与其相关的读写函数
- JAVA删除文件或者文件夹
- windows平台下CMDER的安装和配置
- 《锋利的jQuery》二、jQuery的选择器
- 机器人编程按时巡线_一种智能巡线机器人以及控制方法与流程
- NRR52832 获取扫描请求
- 计算机办公软件基础知识题库,办公软件基础知识试题--题库.doc
- Tcp网络通信中各个状态的含义
- unity 图片改成astc 所有机型机型检测
- python足球联赛赛程_足球联赛赛程表工作表
- 你学了多久 Python 并能正式工作?