Menu
CoddyTech

Evaluate Reverse Polish Notation

ふつうスタックpython iconjava iconcpp iconc iconjs icon+10

逆ポーランド記法で表された算術式が、トークンの配列として与えられます。各演算子は2つのオペランドの直後に置かれるため、3 4 +は3 + 4を意味し、3 4 + 2 *は括弧を使わずに(3 + 4) * 2を意味します。各トークンは整数、または演算子+、-、*、/のいずれかです。

式の値を返してください。除算の結果は0に向かって切り捨てられます。7 / 2は3、-7 / 2は-3です。

関数

evalRPN(tokens: string-array) → integer
tokensstring-array
式の数値と演算子(出現順)
戻り値integer
式の値

制約

  • 1 ≤ tokens.length ≤ 104
  • 各トークンは、+、-、*、/、または 10 進表記で書かれた -200 から 200 までの整数です。負の数の場合は、先頭にマイナス記号を付けます。
  • tokensは逆ポーランド記法の有効な式です。
  • ゼロ除算は発生せず、すべての中間値と最終値は-231より大きく、231より小さくなります。

例

入力
tokens = ["8", "3", "-", "4", "*"]
出力
20
説明
-はまず8に、次に3に適用されるため、結果は-5ではなく5です。次に、*はその5に4を掛けるため、結果は20です。
challenge icon

発展問題

意味が変わる場合にのみ括弧を追加して、(3 + 4) * 2 のような通常の表記で式を再構成できますか?

コードをリセット
def evalRPN(tokens):
    # ここにコードを書いてください

テスト #1

テスト #2

テスト #3

引数

tokens = ["8", "3", "-", "4", "*"]

期待される出力

20