Postfix Evaluation

Postfix Evaluation


当算术表达式以我们熟悉的后缀符号2 + 3 × 4 表示时,括号会提示不同的运算顺序,使其有别于通常由每个运算符的优先级和关联性决定的PEMDAS 顺序。另一种后缀符号(也称为Reverse Polish Notation )可能会让习惯于传统后缀符号的人感到奇怪。然而,后缀符号对机器来说更容易使用,因为它允许对任何预期的运算顺序进行编码,而不需要任何括号!

后缀表达式以list 的形式给出,items ,可以是单个整数,也可以是表示四个基本算术运算符的字符串 "+"、"-"、"*"和"/"之一。使用初始为空的堆栈来求值后缀表达式。从左到右逐项循环。只要当前项是整数,就将其追加到列表末尾。否则,从列表末尾弹出两个项来执行该操作,并将结果追加回列表。假定 items 是一个合法的后缀表达式(本问题中保证了这一点,因此不需要进行任何错误检测或恢复),一旦所有项目都已处理完毕,堆栈中剩下的唯一数字就会成为最终答案。

为了避免浮点运算的复杂性,应该使用 Python 整数除法运算符// 来执行除法运算,该运算符会将结果截断为整数部分。此外,为了避免因除以零而崩溃,这个问题还附带了一个人为的(但mathematically 完全正确的)规则,即除以零的结果为零,而不是崩溃。


通过添加更多运算符和另一个辅助堆栈,可以围绕后缀求值构建整个图灵完备的编程语言。请访问“Forth” 页面,了解这种巧妙而简单的串联编程语言的更多信息。

You should be an authorized user in order to see the full description and start solving this mission.
Invalid hot key. Each hot key should be unique and valid
Hot keys:
CheckiO Extensions

CheckiO Extensions allow you to use local files to solve missions. More info in a blog post.

In order to install CheckiO client you'll need installed Python (version at least 3.8)

Install CheckiO Client first:

pip3 install checkio_client

Configure your tool

checkio --domain=py config --key=

Sync solutions into your local folder

checkio sync

(in beta testing) Launch local server so your browser can use it and sync solution between local file end extension on the fly. (doesn't work for safari)

checkio serv -d

Alternatevly, you can install Chrome extension or FF addon

checkio install-plugin
checkio install-plugin --ff
checkio install-plugin --chromium

Read more here about other functionality that the checkio client provides. Feel free to submit an issue in case of any difficulties.

Pair Programming (Beta-version)

Welcome to Pair Programming! Engage in real-time collaboration on coding projects by starting a session and sharing the provided unique URL with friends or colleagues. This feature is perfect for joint project development, debugging, or learning new skills together. Simply click 'Start Session' to begin your collaborative coding journey!

Waiting for Pair Programming to start...

You are trying to join a pair programming session that has not started yet.

Please wait for the session creator to join.

Waiting for Pair Programming to reconnect...

It looks like the creator of the pair programming session closed the editor window.

It might happen accidentally, so that you can wait for reconnection.

<< <
> >>
exec show

Whats Next?

Free accounts will see Best CheckiO solutions with some delay.
Best Solutions will be opened in a moment
Become Awesome and Don't wait
The next stage is ""
Will be activated in
View More Solutions Random Review Solutions Go to the next mission