150 principais entrevistasFácil

Avalie a notação polonesa reversa

Guia detalhado e implementação de Python para o problema 'Avaliar notação polonesa reversa'.

Declaração do problema

Fácil

Você recebe uma matriz de strings tokens que representa uma expressão aritmética em notação polonesa reversa.

Avalie a expressão e retorne um número inteiro que represente o valor da expressão.

Observe que:

- Os operadores válidos são '+', '-', '*' e '/'.

- Cada operando pode ser um número inteiro ou outra expressão.

- A divisão entre dois inteiros sempre trunca em direção a zero.

- Não haverá divisão por zero.

- A entrada representa uma expressão aritmética válida em notação polonesa reversa.

Escreva uma função evalRPN(tokens: List[str]) -> int.

Restrições
  • 1 <= len(tokens) <= 10^4
  • tokens[i] is either an operator (+, -, *, /) or an integer in the range [-200, 200]

Exemplos

Example 1
Input
tokens = ["2", "1", "+", "3", "*"]
Output
9
Explanation

((2 + 1) * 3) = 9.

Example 2
Input
tokens = ["4", "13", "5", "/", "+"]
Output
6
Explanation

(4 + (13 / 5)) = (4 + 2) = 6. Note 13/5 truncates to 2.

Example 3
Input
tokens = ["10", "6", "9", "3", "+", "-11", "*", "/", "*", "17", "+", "5", "+"]
Output
22
Explanation

((10 * (6 / ((9 + 3) * -11))) + 17 + 5) = 22.

Need a Hint?
Considere usar estruturas de dados específicas da pilha, como conjuntos ou heaps.
Edge Cases to Watch
  • Estruturas de entrada vazias
  • Entradas de elemento único
  • Grandes limites numéricos

Pronto para resolver?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Abrir no Editor
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Recursos Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.