求在 逆波兰表示法 中算术表达式的值。
有效的运算符号包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰计数表达。
例如:
  ["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9
  ["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6
详见:https://leetcode.com/problems/evaluate-reverse-polish-notation/description/

Java实现:

逆波兰表达式就是把操作数放前面,把操作符后置的一种写法,通过观察可以发现,第一个出现的运算符,其前面必有两个数字,当这个运算符和之前两个数字完成运算后从原数组中删去,把得到一个新的数字插入到原来的位置,继续做相同运算,直至整个数组变为一个数字,这种解法会超时。完美的解法是使用栈,从前往后遍历数组,遇到数字则压入栈中,遇到符号,则把栈顶的两个数字拿出来运算,把结果再压入栈中,直到遍历完整个数组,栈顶数字即为最终答案。

class Solution {
public int evalRPN(String[] tokens) {
if(tokens.length<1){
return 0;
}
Stack<Integer> stack =new Stack<Integer>();
for(String token:tokens){
if(token.equals("+")){
int num1=stack.pop();
int num2=stack.pop();
stack.push(num1+num2);
}
else if(token.equals("*")){
int num1=stack.pop();
int num2=stack.pop();
stack.push(num1*num2);
}
else if(token.equals("/")){
int num1=stack.pop();
int num2=stack.pop();
stack.push(num2/num1);
}
else if(token.equals("-")){
int num1=stack.pop();
int num2=stack.pop();
stack.push(num2-num1);
}
else{
stack.push(Integer.parseInt(token));
}
}
return stack.pop();
}
}

最新文章

  1. ToString()的各种用法(大全)
  2. 77 找出最大连续自然数个数[Longest Consecutive Sequence in an Unsorted Array]
  3. ios 中清除webView的缓存
  4. 百度之星复赛Astar Round3
  5. KKCapture 高清录像软
  6. JavaScript - 测试 jQuery
  7. php中双$$与多$$
  8. 消息队列(Message Queue)基本概念(转)
  9. BZOJ 2073: [POI2004]PRZ [DP 状压]
  10. application.properties
  11. Dynamics 365-如何利用Audit History还原被删除的数据
  12. 【dfs】P1433 吃奶酪
  13. python3-datetime.date详解(一)
  14. Mha-Atlas-MySQL高可用
  15. C - Cake HDU - 1722 (数学)
  16. APP测试重点罗列
  17. keyWindow与delegate中Window的区别
  18. Maven解读:项目依赖管理如何优化
  19. Environment.Exit(0) 、Application.Exit() 、this.Close() 、this.Dispose()的区别
  20. c#控件的name和text属性有什么不同?

热门文章

  1. sanic官方文档解析之Custom Protocols(自定义协议)和Socket(网络套接字)
  2. 例子:两个表根据productID合并
  3. inheritance super overrides printMethod in Superclass override重写父方法
  4. Cache 简介
  5. aop+自定义注解
  6. MYSQL进阶学习笔记九:MySQL事务的应用!(视频序号:进阶_21-22)
  7. Android Platform Version与API Level的对应表
  8. jsch文件下载功能
  9. 【USACO】 Balanced Photo
  10. PhpStorm比较高级的一些设置