Menu
CoddyTech

Baseball Game

KolayYığınpython iconjava iconcpp iconc iconjs icon+10

Sıradışı bir oyunda puan tutuyorsun. operations listesini soldan sağa oku; her girdi bir puan kaydını değiştirir. "7" veya "-2" gibi bir tam sayı, o puanı ekler. "+" son iki puanın toplamını, "D" son puanın iki katını ekler ve "C" son puanı kalıcı olarak siler.

Son işlemden sonra kayıtta kalan puanların toplamını döndüren, calPoints adlı bir fonksiyon yaz. Boş bir kaydın toplamı 0 olur.

Fonksiyon

calPoints(operations: string-array) → integer
operationsstring-array
işlemler sırayla: metin olarak tam sayılar veya "+", "D", "C"
Döndürürinteger
sonunda kayıtta hâlâ bulunan puanların toplamı

Kısıtlar

  • 1 ≤ operations.length ≤ 5000
  • Her bir girdi "+", "D", "C" veya ondalık biçimde yazılmış, -3 × 104 ≤ value ≤ 3 × 104 koşulunu sağlayan bir tam sayıdır.
  • Her işlem geçerlidir: kayıt en az iki puan içerdiğinde yalnızca "+" gelir; en az bir puan içerdiğinde ise yalnızca "D" ve "C" gelir.
  • Kaydın içindeki her puan ve toplam, 32 bitlik işaretli bir tamsayıya sığar.

Örnekler

Girdi
operations = ["4", "-2", "D", "+", "C", "7"]
Çıktı
5
Açıklama
Kayıt [4, -2] olacak şekilde büyür, "D" -4 ekler, "+" -2 + -4 = -6 ekler, "C" bu -6 değerini kaldırır ve son olarak 7 eklenir. [4, -2, -4, 7] kaydının toplamı 5 eder.
challenge icon

Ek soru

En son "C" işlemini geri alıp iptal edilen puanı geri koyan bir işlemi O(1) zamanda nasıl eklersin?

Kodu sıfırla
def calPoints(operations):
    # Kodu buraya yazın

Test #1

Test #2

Test #3

Argüman

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

Beklenen Çıktı

5