Menu
CoddyTech

Baseball Game

FacilePilepython iconjava iconcpp iconc iconjs icon+10

Tu tiens le score d’un jeu inhabituel. Lis operations de gauche à droite ; chaque entrée modifie un registre de scores. Un entier tel que "7" ou "-2" ajoute ce score. "+" ajoute la somme des deux derniers scores, "D" ajoute le double du dernier score et "C" supprime définitivement le dernier score.

Écris une fonction nommée calPoints qui renvoie la somme des scores restant dans le registre après la dernière opération. La somme d’un registre vide est 0.

Fonction

calPoints(operations: string-array) → integer
operationsstring-array
les opérations dans l’ordre : des entiers sous forme de texte, ou "+", "D", "C"
Renvoieinteger
la somme des scores encore inscrits au dossier à la fin

Contraintes

  • 1 ≤ operations.length ≤ 5000
  • Chaque entrée est "+", "D", "C" ou un entier écrit en décimal tel que -3 × 104 ≤ value ≤ 3 × 104.
  • Chaque opération est valide : "+" n’apparaît que lorsque l’enregistrement contient au moins deux scores, "D" et "C" uniquement lorsqu’il en contient au moins un.
  • Chaque score de l’enregistrement ainsi que la somme finale tiennent dans un entier signé sur 32 bits.

Exemples

Entrée
operations = ["4", "-2", "D", "+", "C", "7"]
Sortie
5
Explication
La liste s’agrandit jusqu’à [4, -2], "D" ajoute -4, "+" ajoute -2 + -4 = -6, "C" supprime ce -6, et 7 est ajouté en dernier. La liste [4, -2, -4, 7] donne une somme de 5.
challenge icon

Pour aller plus loin

Comment ajouterais-tu une opération qui annule le dernier "C" et rétablit le score annulé, en O(1) ?

Réinitialiser le code
def calPoints(operations):
    # Écrivez le code ici

Test #1

Test #2

Test #3

Argument

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

Résultat attendu

5