Menu
CoddyTech

Baseball Game

LeichtStackpython iconjava iconcpp iconc iconjs icon+10

Du führst bei einem ungewöhnlichen Spiel Buch über die Punkte. Lies operations von links nach rechts; jeder Eintrag verändert die Liste der Punkte. Eine ganze Zahl wie "7" oder "-2" fügt diese Punktzahl hinzu. "+" fügt die Summe der beiden neuesten Punktzahlen hinzu, "D" fügt das Doppelte der neuesten Punktzahl hinzu und "C" entfernt die neueste Punktzahl endgültig.

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

Funktion

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

Einschränkungen

  • 1 ≤ operations.length ≤ 5000
  • Jeder Eintrag ist "+", "D", "C" oder eine ganze Zahl, die dezimal geschrieben ist, wobei -3 × 104 ≤ value ≤ 3 × 104 gilt.
  • Jede Operation ist gültig: "+" kommt nur vor, wenn der Datensatz mindestens zwei Punktzahlen enthält, "D" und "C" nur, wenn er mindestens eine enthält.
  • Jeder Punktestand in der Aufzeichnung 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, "+" addiert -2 + -4 = -6, "C" entfernt diese -6, und 7 kommt zuletzt hinzu. Die Summe des Datensatzes [4, -2, -4, 7] beträgt 5.
challenge icon

Weiterführende Frage

Wie würdest du eine Operation hinzufügen, die das zuletzt ausgeführte "C" rückgängig macht und den gestrichenen Punktestand zurücksetzt, und zwar in O(1)-Zeit?

Code zurücksetzen
def calPoints(operations):
    # Schreibe hier den Code

Test #1

Test #2

Test #3

Argument

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

Erwartete Ausgabe

5