Menu
CoddyTech

Baseball Game

MudahStackpython iconjava iconcpp iconc iconjs icon+10

Kamu mencatat skor untuk sebuah permainan yang tidak biasa. Baca operations dari kiri ke kanan; setiap entri mengubah catatan skor. Bilangan bulat seperti "7" atau "-2" menambahkan skor tersebut. "+" menambahkan jumlah dua skor terakhir, "D" menambahkan dua kali skor terakhir, dan "C" menghapus skor terakhir secara permanen.

Tulis fungsi bernama calPoints yang mengembalikan jumlah skor yang tersisa pada catatan setelah operasi terakhir. Catatan kosong memiliki jumlah 0.

Fungsi

calPoints(operations: string-array) → integer
operationsstring-array
operasi secara berurutan: bilangan bulat sebagai teks, atau "+", "D", "C"
Mengembalikaninteger
jumlah skor yang masih tercatat pada akhir

Batasan

  • 1 ≤ operations.length ≤ 5000
  • Setiap entri berupa "+", "D", "C", atau bilangan bulat yang ditulis dalam desimal dengan -3 × 104 ≤ value ≤ 3 × 104.
  • Setiap operasi valid: "+" hanya muncul saat catatan memiliki setidaknya dua skor, "D" dan "C" hanya saat catatan memiliki setidaknya satu skor.
  • Setiap skor pada catatan dan jumlah akhir muat dalam bilangan bulat bertanda 32-bit.

Contoh

Input
operations = ["4", "-2", "D", "+", "C", "7"]
Output
5
Penjelasan
Catatan bertambah menjadi [4, -2], "D" menambahkan -4, "+" menambahkan -2 + -4 = -6, "C" menghapus -6 tersebut, dan 7 ditambahkan terakhir. Jumlah catatan [4, -2, -4, 7] adalah 5.
challenge icon

Pertanyaan lanjutan

Bagaimana cara menambahkan operasi yang membatalkan "C" terbaru dan mengembalikan skor yang dibatalkan, dalam waktu O(1)?

Reset kode
def calPoints(operations):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

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

Output yang diharapkan

5