Menu
CoddyTech

Baseball Game

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

Alışılmadık bir oyunda puan tutuyorsun. operations listesi soldan sağa okunur ve her girdi puan kaydını değiştirir. "7" veya "-2" gibi bir tam sayı, bu puanı kayda ekler. "+", son iki puanın toplamına eşit bir puan ekler; "D", son puanın iki katına eşit bir puan ekler; "C" ise son puanı kayıttan 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ırasıyla: 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 -3 × 104 ≤ value ≤ 3 × 104 koşulunu sağlayan ondalık biçimde yazılmış bir tam sayıdır.
  • Her işlem geçerlidir: "+" yalnızca kayıtta en az iki puan olduğunda, "D" ve "C" ise yalnızca en az bir puan olduğunda gelir.
  • Kayıttaki her puan ve son 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 7 en son eklenir. [4, -2, -4, 7] kaydının toplamı 5 eder.

lock iconGönderirken +13 gizli test

challenge icon

Ek soru

Sonundaki kaydı toplama eklemeden toplamı döndürebilir misin, böylece iptal işlemi de dahil olmak üzere her işlem O(1) zaman alsın?

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

Durum 1

Durum 2

Durum 3

Girdi

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

Beklenen

5