LeetCode 逆波兰表达式java实现
来源:互联网 发布:数据分析相关岗位 编辑:程序博客网 时间:2024/05/29 11:53
Evaluate the value of an arithmetic expression in Reverse Polish Notation.
Valid operators are+,-,*,/. Each operand may be an integer or another expression.
Some examples:
["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9 ["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6
实现逆波兰算法的关键是查找运算符。
利用栈,将tokens中的元素压入栈,一旦遇到运算符取出两个栈顶元素(取出的同时删除pop())进行运算,将运算所得的结果压入栈内
import java.util.Stack;public class Solution { public int evalRPN(String[] tokens) { Stack<Integer> s=new Stack<Integer>(); for (int i=0;i<tokens.length;i++){ if(tokens[i].equals("+")){ int right=s.pop(); int left=s.pop(); int result=left+right; s.push(result); }else if(tokens[i].equals("*")){ int right=s.pop(); int left=s.pop(); int result=left*right; s.push(result); }else if(tokens[i].equals("-")){ int right=s.pop(); int left=s.pop(); int result=left-right; s.push(result); }else if(tokens[i].equals("/")){ int right=s.pop(); int left=s.pop(); int result=left/right; s.push(result); }else{ s.push(Integer.parseInt(tokens[i])); } } return s.pop(); }}
0 0
- LeetCode 逆波兰表达式java实现
- 逆波兰表达式java实现
- 实现逆波兰表达式的java计算器
- 逆波兰表达式的java实现
- 【Algorithm】逆波兰表达式 Java实现
- Java实现-逆波兰表达式求值
- 逆波兰表达式实现
- java 逆波兰表达式
- 逆波兰表达式 java
- 逆波兰表达式 java
- 逆波兰表达式 ---java
- Leetcode 150:Evaluate Reverse Polish Notation(计算逆波兰表达式) --java实现
- [LeetCode] 逆波兰表达式求值
- java leetcode之逆波兰表达式计算四则运算
- 逆波兰表达式算法实现
- 逆波兰表达式原理实现
- 波兰、逆波兰表达式
- Java求解逆波兰表达式
- 题目1165:字符串匹配
- iOS UILabel有时遇到空格会换行,或换行不正确的问题
- MCUXpresso IDE:导入Kinetis Design Studio工程
- python中的iterator介绍及应用场景
- Android图片加载框架最全解析(一),Glide的基本用法
- LeetCode 逆波兰表达式java实现
- tpshop好用吗
- android中Parcelable接口的使用
- three.js 矩阵式贴图
- js 保留n位小数
- jquery select 移动
- 为Android添加一门新语言
- 如何更好地限制一个UITextField的输入长度
- 异或(京东2017实习生真题)