Menu
CoddyTech

Baseball Game

FácilPilapython iconjava iconcpp iconc iconjs icon+10

Llevas la puntuación de un juego poco común. Lee operations de izquierda a derecha; cada entrada modifica el registro de puntuaciones. Un número entero como "7" o "-2" añade esa puntuación. "+" añade la suma de las dos últimas puntuaciones, "D" añade el doble de la última puntuación y "C" elimina definitivamente la última puntuación.

Escribe una función llamada calPoints que devuelva la suma de las puntuaciones que quedan en el registro después de la última operación. Un registro vacío suma 0.

Función

calPoints(operations: string-array) → integer
operationsstring-array
las operaciones en orden: enteros como texto, o "+", "D", "C"
Devuelveinteger
la suma de las puntuaciones que aún están registradas al final

Restricciones

  • 1 ≤ operations.length ≤ 5000
  • Cada entrada es "+", "D", "C" o un número entero escrito en decimal con -3 × 104 ≤ value ≤ 3 × 104.
  • Todas las operaciones son válidas: "+" aparece solo cuando el registro contiene al menos dos puntuaciones; "D" y "C" aparecen solo cuando contiene al menos una.
  • Cada puntuación del registro y la suma final caben en un entero con signo de 32 bits.

Ejemplos

Entrada
operations = ["4", "-2", "D", "+", "C", "7"]
Salida
5
Explicación
El registro crece hasta [4, -2], "D" añade -4, "+" añade -2 + -4 = -6, "C" elimina ese -6 y 7 va al final. El registro [4, -2, -4, 7] suma 5.
challenge icon

Para ir más allá

¿Cómo añadirías una operación que deshaga el "C" más reciente y restablezca la puntuación cancelada en tiempo O(1)?

Restablecer código
def calPoints(operations):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumento

operations = ["4", "-2", "D", "+", "C", "7"]

Salida Esperada

5