Menu
CoddyTech

Baseball Game

FácilPilapython iconjava iconcpp iconc iconjs icon+10

Llevas la puntuación de un juego inusual. La lista operations se lee de izquierda a derecha, y cada entrada modifica un registro de puntuaciones. Un número entero como "7" o "-2" añade esa puntuación al registro. "+" añade una puntuación igual a la suma de las dos puntuaciones más recientes, "D" añade una puntuación igual al doble de la puntuación más reciente y "C" elimina definitivamente del registro la puntuación más reciente.

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: números enteros como texto, o "+", "D", "C"
Devuelveinteger
la suma de las puntuaciones que aún figuran en el registro al final

Restricciones

  • 1 ≤ operations.length ≤ 5000
  • Cada entrada es "+", "D", "C" o un entero escrito en decimal con -3 × 104 ≤ value ≤ 3 × 104.
  • Cada operación es válida: "+" aparece solo cuando el registro contiene al menos dos puntuaciones, "D" y "C" 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 se añade al final. El registro [4, -2, -4, 7] suma 5.

lock icon+13 pruebas ocultas al enviar

challenge icon

Para ir más allá

¿Puedes devolver la suma sin sumar el registro del final, para que cada operación, incluida una cancelación, tome O(1) de tiempo?

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

Caso 1

Caso 2

Caso 3

Entrada

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

Esperado

5