Copyright 2019 HisenZhang
1920年, 逆波兰表示法Reverse Polish Notation
首次被提出. 不同于我们常用的中置表达式, 逆波兰表示法将操作符写在操作数后面, 例如阶乘!
.
逆波兰表示法的这一特性适合使用栈stack
来解析. 这种设计可以减少存储器访问. 因此在1960和1970年代, 逆波兰记法广泛应用于台式和手持计算器.
在这个挑战里, 你需要编写一个解释器来计算逆波兰表达式, 实现加减乘除四则运算.
样例
输入样例 1
1 | 6 7 8 + * |
输出样例 1
1 | 90 |
输入样例 2
1 | 2.2 3 * 4 + |
输出样例 2
1 | 10.6 |
完成度
本挑战的完成度分为两个等级
- 可以解析个位数的操作数
- 可以解析多位操作数(包括浮点数)
目标
- 学习栈
stack
结构与栈的操作 - 强化列表与字符串的操作
- 强化四则运算的编程
- 强化条件/循环语句
材料
访问OneDrive以获取相关材料
- 中文维基百科:
reverse_polish_notation.pdf
- 视频 & 英语字幕:
Reverse Polish Notation and The Stack - Computerphile.m4v
Reverse Polish Notation and The Stack - Computerphile.ass
- 从零开始学Python(第二版)节选
list_functions.pdf
提示
- 列表对象有两个方法:
append()
pop()
- 字符串对象有个方法:
strip()