Menu
CoddyTech

Baseball Game

FacileStackpython iconjava iconcpp iconc iconjs icon+10

Tieni il punteggio di un gioco insolito. Leggi operations da sinistra a destra; ogni voce modifica un registro dei punteggi. Un numero intero come "7" o "-2" aggiunge quel punteggio. "+" aggiunge la somma degli ultimi due punteggi, "D" aggiunge il doppio dell’ultimo punteggio e "C" rimuove definitivamente l’ultimo punteggio.

Scrivi una funzione chiamata calPoints che restituisca la somma dei punteggi rimasti nel registro dopo l’ultima operazione. Un registro vuoto ha somma 0.

Funzione

calPoints(operations: string-array) → integer
operationsstring-array
le operazioni in ordine: interi come testo, oppure "+", "D", "C"
Restituisceinteger
la somma dei punteggi ancora presenti nel record alla fine

Vincoli

  • 1 ≤ operations.length ≤ 5000
  • Ogni elemento è "+", "D", "C" oppure un intero scritto in notazione decimale con -3 × 104 ≤ value ≤ 3 × 104.
  • Ogni operazione è valida: "+" compare solo quando il record contiene almeno due punteggi, "D" e "C" solo quando ne contiene almeno uno.
  • Ogni punteggio nel record e la somma finale rientrano in un intero con segno a 32 bit.

Esempi

Input
operations = ["4", "-2", "D", "+", "C", "7"]
Output
5
Spiegazione
Il registro cresce fino a [4, -2], "D" aggiunge -4, "+" aggiunge -2 + -4 = -6, "C" rimuove quel -6 e 7 viene aggiunto per ultimo. Il registro [4, -2, -4, 7] dà come somma 5.
challenge icon

Per approfondire

Come aggiungeresti un'operazione che annulla l'ultimo "C", ripristinando il punteggio cancellato, in tempo O(1)?

Ripristina il codice
def calPoints(operations):
    # Scrivi il codice qui

Test #1

Test #2

Test #3

Argomento

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

Output atteso

5