问题:

用反波兰式表示算术表达式的值。
有效运算符是+,-,*,/。每个操作数可以是一个整数或另一个表达式。
一些例子:

["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6

答案:

public class Solution {public int evalRPN(String[] tokens) {Stack<String> stack = new Stack<String>();for(int i=0;i<tokens.length;i++){if(tokens[i].equals("+")){int n = Integer.parseInt(stack.pop());int m = Integer.parseInt(stack.pop());stack.push(String.valueOf(n+m));}else if(tokens[i].equals("-")){int n = Integer.parseInt(stack.pop());int m = Integer.parseInt(stack.pop());stack.push(String.valueOf(m-n));}else if(tokens[i].equals("*")){int n = Integer.parseInt(stack.pop());int m = Integer.parseInt(stack.pop());stack.push(String.valueOf(n*m));}else if(tokens[i].equals("/")){int n = Integer.parseInt(stack.pop());int m = Integer.parseInt(stack.pop());int re;if(m == 0){re = 0;}else{re = m/n;}stack.push(String.valueOf(re));}else {stack.push(tokens[i]);}}return Integer.parseInt(stack.pop());}
}

【算法系列之二】反波兰式相关推荐

  1. 机器学习算法系列(二十二)-近似k近邻算法-Annoy(Approximate Nearest Neighbor / ANN)

    阅读本文需要的背景知识点:k近邻算法.一丢丢编程知识 一.引言   前面一节我们学习了机器学习算法系列(二十一)-k近邻算法(k-Nearest Neighbor / kNN Algorithm),其 ...

  2. 精通八大排序算法系列:二、堆排序算法

    精通八大排序算法系列:二.堆排序算法 作者:July .二零一一年二月二十日 本文参考:Introduction To Algorithms,second edition. ------------- ...

  3. 算法系列之二:三只水桶等分水问题

    算法系列之二: 三只水桶等分水问题 有一个容积为8升的水桶里装满了水,另外还有一个容积为3升的空桶和一个容积为5升的空桶,如何利用这两个空桶等分8升水?附加条件是三个水桶都没有体积刻度,也不能使用其它 ...

  4. 编译原理实验二-逆波兰式生成程序

    一.实验目的和要求: 1. 掌握语法分析的基本思想,并用高级语言编写逆波兰式生成程序 2. 要求利用逆波兰式生成算法编写程序,将从键盘上输入的算术表达式 (中缀表达式)转化成逆波兰式 二.实验平台: ...

  5. 算法系列之二十:计算中国农历(二)

    (接上篇) 所谓的"天文算法",就是利用经典力学定律推导行星运转轨道,对任意时刻的行星位置进行精确计算,从而获得某种天文现象发生时的时间,比如日月合朔这一天文现象就是太阳和月亮的地 ...

  6. [算法系列之二十六]字符串匹配之KMP算法

    一 简介 KMP算法是一种改进的字符串匹配算法,由D.E.Knuth与V.R.Pratt和J.H.Morris同时发现,因此人们称它为克努特-莫里斯-普拉特操作(简称KMP算法).KMP算法的关键是利 ...

  7. 后向投影算法(BPA)-SAR成像算法系列(二)

    系列文章目录 <SAR学习笔记> <SAR学习笔记-代码部分> <SAR学习笔记后续-phased工具箱介绍> <SAR学习笔记-SAR成像算法系列(一)&g ...

  8. [算法系列之二十]字典树(Trie)

    一 概述 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种.典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计. 二 优点 利用字符串 ...

  9. c语言数据结构逆波兰算法,[分享]表达式二叉树逆波兰式的转换程序源代码(C++)...

    [分享]表达式二叉树逆波兰式的转换程序源代码(C++) RT,这是我两年前学数据结构时的作品. 拿出来给大家分享. ps:当时才学C++,代码写的不好,见笑了./*将中缀式转换为表达式树,并打印逆波兰 ...

最新文章

  1. as3绕过策略文件给视频截图
  2. DEBIAN vim的语法高亮和自动縮进
  3. php 操作权限,liunx下PHP操作权限文件
  4. java自动生成代码框架_DodoFramework- 一个基于代码生成引擎的Java Web系统自动化开发框架...
  5. 运行时数据区内部结构
  6. How to use price determination in Quotation scenario
  7. 微软正式发布Azure IoT Central
  8. leetcode96. 不同的二叉搜索树(动态规划)
  9. 统计学习方法基础总结
  10. springsecurity 认证之授权码模式
  11. 系统检测到您正在使用网页抓取工具访问_从网站抓取数据的3种最佳方法
  12. sublime text3 常用配置
  13. 对比了解Grafana与Kibana的关键差异
  14. php varbinary,php – 无法从MSSQL中获取varbinary数据
  15. MySQL(4) 数据库增删改查SQL语句(整理集合大全)
  16. 注册表常用命令DOS
  17. 照片上传分辨率低怎么改?图片分辨率dpi怎么调?
  18. unix、window、linux、mac介绍
  19. 手势识别:使用EfficientNet模型迁移、VGG16模型迁移
  20. antd Card组件默认选中

热门文章

  1. oracle 建表id自增长_oracle 左连接、右连接、全外连接、内连接、以及 (+) 号用法...
  2. WinCE内核裁减(中文字体)及字库和内核的分离
  3. view类不响应自定义消息_安卓平台如何给控件添加自定义操作?
  4. postgis创建空间数据库(pgadmin4)
  5. LSGO软件技术团队2015~2016学年第九周(1026~1101)总结
  6. C# SFTP上传文件
  7. 解决Sharepoint每天第一次打开速度慢的问题
  8. 10分钟精通SharePoint-验证方式
  9. android webview url scheme,Android Webview ERR_UNKNOWN_URL_SCHEME错误
  10. java面试宝典 多线程,《java面试宝典》之java多线程面试题