Descarga la aplicación
Selecciona una carpeta y pide al asistente que lea los archivos relevantes antes de editarlos. Mantén el objetivo y los límites de la tarea en la conversación.
Evalúa entre uno y 100 tokens posfijos con enteros acotados y los operadores +, -, * y //. Comprueba la división negativa hacia menos infinito y rechaza división por cero, una pila incompleta o magnitudes intermedias superiores a 10**18.
Selecciona una carpeta y pide al asistente que lea los archivos relevantes antes de editarlos. Mantén el objetivo y los límites de la tarea en la conversación.
Elige un endpoint compatible. Las herramientas disponibles y la calidad de las respuestas dependen del modelo y del servidor configurados.
Revisa las modificaciones y la salida de los comandos. Ejecuta las comprobaciones de tu proyecto antes de aceptar el resultado; el código generado no está probado por defecto.
Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.
def postfix_value(tokens):
tokens = tuple(tokens)
if not 1 <= len(tokens) <= 100:
raise ValueError("tokens.limit")
stack = []
for token in tokens:
if type(token) is int and abs(token) <= 1000000000:
stack.append(token)
continue
if type(token) is not str or token not in ("+", "-", "*", "//") or len(stack) < 2:
raise ValueError("token.invalid")
right, left = stack.pop(), stack.pop()
if token == "//" and right == 0:
raise ValueError("division.zero")
value = (left + right if token == "+" else left - right if token == "-" else left * right if token == "*" else left // right)
if abs(value) > 10**18:
raise ValueError("result.range")
stack.append(value)
if len(stack) != 1:
raise ValueError("stack.remainder")
return stack[0]Revisa antes de aplicar. Revisa las modificaciones y la salida de los comandos. Ejecuta las comprobaciones de tu proyecto antes de aceptar el resultado; el código generado no está probado por defecto.