博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
150. Evaluate Reverse Polish Notation
阅读量:6048 次
发布时间:2019-06-20

本文共 1944 字,大约阅读时间需要 6 分钟。

Evaluate the value of an arithmetic expression in Reverse Polish Notation.

Valid operators are +, -, *, /. Each operand may be an integer or another expression.
Note:
Division between two integers should truncate toward zero.
The given RPN expression is always valid. That means the expression would always evaluate to a result and there won't be any divide by zero operation.
Example 1:

Input: ["2", "1", "+", "3", "*"]Output: 9Explanation: ((2 + 1) * 3) = 9

Example 2:

Input: ["4", "13", "5", "/", "+"]Output: 6Explanation: (4 + (13 / 5)) = 6

Example 3:

Input: ["10", "6", "9", "3", "+", "-11", "*", "/", "*", "17", "+", "5", "+"]Output: 22Explanation:   ((10 * (6 / ((9 + 3) * -11))) + 17) + 5= ((10 * (6 / (12 * -11))) + 17) + 5= ((10 * (6 / -132)) + 17) + 5= ((10 * 0) + 17) + 5= (0 + 17) + 5= 17 + 5= 22

难度:medium

题目:

求算术表达式在反波兰表示法中的值。
有效的操作符是+、-、*、/。每个操作数可以是一个整数或另一个表达式。

思路:栈

Runtime: 6 ms, faster than 91.00% of Java online submissions for Evaluate Reverse Polish Notation.

Memory Usage: 36.6 MB, less than 100.00% of Java online submissions for Evaluate Reverse Polish Notation.

class Solution {    public int evalRPN(String[] tokens) {        Stack
stack = new Stack<>(); int tNum = 0; for (int i = 0; i < tokens.length; i++) { switch(tokens[i]) { case "+" : stack.push(stack.pop() + stack.pop()); break; case "-" : tNum = stack.pop(); stack.push(stack.pop() - tNum); break; case "*" : stack.push(stack.pop() * stack.pop()); break; case "/" : tNum = stack.pop(); stack.push(stack.pop() / tNum); break; default : stack.push(Integer.parseInt(tokens[i])); } } return stack.pop(); }}

转载地址:http://aexex.baihongyu.com/

你可能感兴趣的文章
自己重新编译VLFeat
查看>>
Scrapy简介
查看>>
在本地计算机无法启动world wide web Publishing 服务或者安装iis5无法启动iis默认网站...
查看>>
c#如何操作excel文件、Interior.ColorIndex 色彩列表
查看>>
百练OJ 1017 2801
查看>>
MySQL5.5 performance_schema的介绍
查看>>
c# 利用反射获得某个类或者对象的所有属性
查看>>
java基础---->正则表达式
查看>>
win8 开发之旅(4) --五子棋游戏开发 面向对象的分析
查看>>
mfc在控制多显示器的使用方法
查看>>
rsync 精确同步文件用法 (转载)
查看>>
【Flume】HDFSSink源码理解
查看>>
Using Container Service to Build WeChat Applets
查看>>
RGB颜色转换算法C语言实现
查看>>
用GOACCESS分析NGINX日志
查看>>
Creating Skins with SkinSys Ver 1.0
查看>>
《VMware Virtual SAN权威指南》一3.3 VSAN网络配置之VMware标准交换机
查看>>
只为那句承诺-大话Promise
查看>>
IaaS市场大整合:云用户喜忧参半
查看>>
Skype-Type:一款通过声音窃取键盘记录的Keylogger工具
查看>>