150. Evaluate Reverse Polish Notation - LeetCode
2024-09-07 05:15:08
Question
150. Evaluate Reverse Polish Notation
Solution
2 1 + 3 *
是((2+1)*3)
的后缀(postfix)或逆波兰(reverse Polish)记法,计算这个表达式容易想到栈,当见到一个数时就入栈,见到操作符时该运算符作用于从该栈中弹出的两个数上,将所得结果入栈。
public int evalRPN(String[] tokens) {
Stack<Integer> stack = new Stack<>();
for (String tmp : tokens) {
if (tmp.length() > 1) {
stack.push(Integer.parseInt(tmp));
continue;
}
char c = tmp.charAt(0); // String转char
int a, b;
switch (c) {
case '+':
b = stack.pop();
a = stack.pop();
stack.push(a + b);
break;
case '-':
b = stack.pop();
a = stack.pop();
stack.push(a - b);
break;
case '*':
b = stack.pop();
a = stack.pop();
stack.push(a * b);
break;
case '/':
b = stack.pop();
a = stack.pop();
stack.push(a / b);
break;
default:
stack.push(c - '0'); // char 转 int
}
}
return stack.pop();
}
Reference
最新文章
- SQL Server 2012 数据库笔记
- Java事务处理全解析(八)——分布式事务入门例子(Spring+JTA+Atomikos+Hibernate+JMS)
- 转:Metronic – 超赞!基于 Bootstrap 的响应式后台管理模板
- 对象属性操作-包含kvc---ios
- 打造自己的Markdown编辑器
- 对Kernel panic-not syncing:No init found...init=option to kernel错误总结!
- c# SQL CLR 之一
- UVA 624 - CD (01背包 + 打印物品)
- delphi获取mdb密码
- CentOS 6.7 配置nginx支持SSL/https访问
- 从0到上线开发企业级电商项目_前端_01_sublime使用技巧
- BIGIP-LTM中的NAT和SNAT
- 图书管理系统 (c语言实现) (全部代码)
- Qt Designer 的使用
- HTML5特效收录-不定时更新
- LODOP打印控件之LODOP.NewPageA()方法
- APACHE如何一个站点绑定多个域名?
- 给DB2某表增加一个自增长列
- linux入门总结
- 判断数独是否合法(LintCode)
热门文章
- Java 新内存(cache)模型解析
- 记离线缓存(manifest)一大坑,断定其只适用于静态网站或离线应用
- Centos搭建 Docker 环境
- Mysql_事务_存储过程_触发器
- Docker的简介
- Spring Boot-@PropertySource注解
- 算法基础⑦搜索与图论--BFS(宽度优先搜索)
- 计算机系统5->; 计组与体系结构2 | MIPS指令集(上)| 指令系统
- 多线程JUC并发篇常见面试详解
- python基础练习题(有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?)