Notación posfija (Parte 2: de infija a posfija)

Dada una cadena que representa una expresión infija, devuelve el equivalente en notación posfija. Los operandos mantienen su orden original y se eliminan los paréntesis. Solo cambia el orden de los operadores. Los operandos y operadores estarán separados por un solo espacio, con la excepción de los paréntesis (consulta los ejemplos).

Ejemplos

infix_to_postfix("7 + 3") ➞ "7 3 +"

infix_to_postfix("(8 + 4) / 4") ➞ "8 4 + 4 /"

infix_to_postfix("4 * (5 - (7 + 2))") ➞ "4 5 7 2 + - *"

infix_to_postfix("3 + 4 ** 2") ➞ "3 4 2 ** +"

Notas

Convertir expresiones infijas a expresiones posfijas es un ejemplo del análisis sintáctico por precedencia de operadores, cuyo ejemplo más famoso es el algoritmo "shunting-yard" de Dijkstra (consulta la pestaña de recursos para obtener más información).