Menu
CoddyTech

Baseball Game

LeichtStackpython iconjava iconcpp iconc iconjs icon+10

Du führst bei einem ungewöhnlichen Spiel Buch über die Punkte. Die Liste operations wird von links nach rechts gelesen, und jeder Eintrag ändert eine Aufzeichnung der Punkte. Eine Ganzzahl wie "7" oder "-2" fügt diese Punktzahl zur Aufzeichnung hinzu. "+" fügt eine Punktzahl hinzu, die der Summe der beiden neuesten Punktzahlen entspricht, "D" fügt eine Punktzahl hinzu, die dem Doppelten der neuesten Punktzahl entspricht, und "C" entfernt die neueste Punktzahl endgültig aus der Aufzeichnung.

Schreibe eine Funktion namens calPoints, die die Summe der Punktzahlen zurückgibt, die nach der letzten Operation noch in der Aufzeichnung stehen. Eine leere Aufzeichnung ergibt die Summe 0.

Funktion

calPoints(operations: string-array) → integer
operationsstring-array
die Operationen der Reihe nach: Ganzzahlen als Text oder "+", "D", "C"
Gibt zurückinteger
die Summe der Punkte, die am Ende noch in der Aufzeichnung stehen

Einschränkungen

  • 1 ≤ operations.length ≤ 5000
  • Jeder Eintrag ist "+", "D", "C" oder eine als Dezimalzahl geschriebene ganze Zahl mit -3 × 104 ≤ value ≤ 3 × 104.
  • Jede Operation ist gültig: "+" kommt nur dann vor, wenn der Datensatz mindestens zwei Punktzahlen enthält, "D" und "C" nur dann, wenn er mindestens eine enthält.
  • Jede Punktzahl im Datensatz und die Endsumme passen in eine vorzeichenbehaftete 32-Bit-Ganzzahl.

Beispiele

Eingabe
operations = ["4", "-2", "D", "+", "C", "7"]
Ausgabe
5
Erklärung
Der Datensatz wächst auf [4, -2], "D" fügt -4 hinzu, "+" fügt -2 + -4 = -6 hinzu, "C" entfernt dieses -6, und 7 kommt zuletzt hinzu. Die Summe des Datensatzes [4, -2, -4, 7] ist 5.

lock icon+13 versteckte Tests beim Einreichen

challenge icon

Weiterführende Frage

Kannst du die Summe zurückgeben, ohne den Datensatz am Ende aufzusummieren, sodass jede Operation, einschließlich einer Stornierung, O(1) Zeit benötigt?

Code zurücksetzen
def calPoints(operations):
    # Schreibe hier Code
Testfälle

Fall 1

Fall 2

Fall 3

Eingabe

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

Erwartet

5