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

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

Evaluate the value of an arithmetic expression in .

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 用stack, 每次遇到operator就从stack里取出2个数,后取出的数 运算符 先取出的数,然后再放回stack里。遇到数字直接放入stack里。switch不支持string,换成index。
public class Solution {    public int evalRPN(String[] tokens) {        Stack
stack=new Stack
(); String operators="+-*/"; for(String t:tokens){ if(!operators.contains(t)){ stack.push(t); }else{ int index=operators.indexOf(t); int b=Integer.valueOf(stack.pop()); int a=Integer.valueOf(stack.pop()); switch(index){ case 0: stack.push(String.valueOf(a+b)); break; case 1: stack.push(String.valueOf(a-b)); break; case 2: stack.push(String.valueOf(a*b)); break; case 3: stack.push(String.valueOf(a/b)); break; } } } return Integer.valueOf(stack.pop()); }}

 

转载于:https://www.cnblogs.com/qingyezi/p/3815952.html

你可能感兴趣的文章
自定义树形目录(模拟SublimeText3)
查看>>
Mysql客户端工具可以连接,但是代码访问就会报错
查看>>
linux目录结构介绍
查看>>
Free Windows Applications
查看>>
好的产品原型具有哪些特点?
查看>>
AngularJS教程
查看>>
Mybatis-Plus 逆向工程
查看>>
vue 对对象的属性进行修改时,不能渲染页面 vue.$set()
查看>>
git 大法,玩转版本管理
查看>>
在Django中使用celery整理
查看>>
Gitlab-ci与RUNNER的安装与使用
查看>>
实现java导出文件弹出下载框让用户选择路径
查看>>
浅谈大数据时代下web数据可视化探析
查看>>
001,kibana的安装
查看>>
7.1 安装软件包的三种方法
查看>>
zabbix的server无法获取数据
查看>>
web前端这么缺人,为什么还是找不到工作
查看>>
入门爬虫的干货
查看>>
java多线程对CountDownLatch的使用实例
查看>>
Python Django的安装和简单运用
查看>>