Menu
CoddyTech

Baseball Game

やさしいスタックpython iconjava iconcpp iconc iconjs icon+10

あなたは風変わりなゲームのスコアを記録します。リスト operations は左から右に読み取られ、各項目によってスコア記録が変化します。"7" や "-2" のような整数は、そのスコアを記録に追加します。"+" は直近2つのスコアの合計を追加し、"D" は直近のスコアの2倍を追加し、"C" は直近のスコアを記録から完全に削除します。

最後の操作の後に記録に残っているスコアの合計を返す、calPoints という名前の関数を書いてください。記録が空の場合、合計は 0 です。

関数

calPoints(operations: string-array) → integer
operationsstring-array
操作は順に、テキストとしての整数、または「+」、「D」、「C」
戻り値integer
最後に記録に残っているスコアの合計

制約

  • 1 ≤ operations.length ≤ 5000
  • 各エントリーは "+"、"D"、"C"、または -3 × 104 ≤ value ≤ 3 × 104 の範囲で10進数表記された整数です。
  • すべての操作は有効です。"+"が来るのは記録にスコアが少なくとも2つある場合のみで、"D"と"C"が来るのは記録にスコアが少なくとも1つある場合のみです。
  • 記録上のすべてのスコアと最終的な合計は、32 ビット符号付き整数に収まります。

例

入力
operations = ["4", "-2", "D", "+", "C", "7"]
出力
5
説明
記録は[4, -2]に増え、"D"は-4を追加し、"+"は-2 + -4 = -6を追加し、"C"はその-6を削除し、最後に7が加わります。記録[4, -2, -4, 7]の合計は5です。

lock icon提出時に隠しテスト+13件

challenge icon

発展問題

最後の記録を足し合わせずに合計を返して、キャンセルを含むすべての操作をO(1)時間で実行できますか?

コードをリセット
def calPoints(operations):
    # ここにコードを書いてください
テストケース

ケース1

ケース2

ケース3

入力

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

期待値

5