LeetCode 棒球比賽 682

2022-03-11 01:16:25 字數 1365 閱讀 1543

你現在是棒球比賽記錄員。

給定乙個字串列表,每個字串可以是以下四種型別之一:

1.整數(一輪的得分):直接表示您在本輪中獲得的積分數。

2."+"(一輪的得分):表示本輪獲得的得分是前兩輪有效回合得分的總和。

3."d"(一輪的得分):表示本輪獲得的得分是前一輪有效回合得分的兩倍。

4."c"(乙個操作,這不是乙個回合的分數):表示您獲得的最後乙個有效回合的分數是無效的,應該被移除。

每一輪的操作都是永久性的,可能會對前一輪和後一輪產生影響。

你需要返回你在所有回合中得分的總和。

示例 1:

輸入: ["5","2","c","d","+"]

輸出: 30

解釋:

第1輪:你可以得到5分。總和是:5。

第2輪:你可以得到2分。總和是:7。

操作1:第2輪的資料無效。總和是:5。

第3輪:你可以得到10分(第2輪的資料已被刪除)。總數是:15。

第4輪:你可以得到5 + 10 = 15分。總數是:30。

示例 2:

輸入: ["5","-2","4","c","d","9","+","+"]

輸出: 27

解釋:

第1輪:你可以得到5分。總和是:5。

第2輪:你可以得到-2分。總數是:3。

第3輪:你可以得到4分。總和是:7。

操作1:第3輪的資料無效。總數是:3。

第4輪:你可以得到-4分(第三輪的資料已被刪除)。總和是:-1。

第5輪:你可以得到9分。總數是:8。

第6輪:你可以得到-4 + 9 = 5分。總數是13。

第7輪:你可以得到9 + 5 = 14分。總數是27。

使用棧來儲存有效分數,比如["5","2","c","d","+"],對於5、2來說我們直接入棧【5,2】,c會讓上乙個分數失效,則出棧2,此時棧,d得分為上個有效分數翻倍,所以我們使得10入棧【5,10】,+得分為前兩個有效分數的和,故15入棧【5,10,15】,最後騰空棧,並把出棧的元素累加到乙個臨時變數上,返回臨時變數即可。

class solution 

case "d":

case "c":

}stack.push(integer.valueof(op));

}int score = 0;

while (!stack.isempty())

score+=stack.pop();

return score;

}}

LeetCode 682 棒球比賽

你現在是棒球比賽記錄員。給定乙個字串列表,每個字串可以是以下四種型別之一 1.整數 一輪的得分 直接表示您在本輪中獲得的積分數。2.一輪的得分 表示本輪獲得的得分是前兩輪有效回合得分的總和。3.d 一輪的得分 表示本輪獲得的得分是前一輪有效回合得分的兩倍。4.c 乙個操作,這不是乙個回合的分數 表示...

Leetcode 682 棒球比賽

你現在是棒球比賽記錄員。給定乙個字串列表,每個字串可以是以下四種型別之一 1.整數 一輪的得分 直接表示您在本輪中獲得的積分數。2.一輪的得分 表示本輪獲得的得分是前兩輪有效回合得分的總和。3.d 一輪的得分 表示本輪獲得的得分是前一輪有效回合得分的兩倍。4.c 乙個操作,這不是乙個回合的分數 表示...

LeetCode682 棒球比賽

你現在是棒球比賽記錄員。給定乙個字串列表,每個字串可以是以下四種型別之一 1.整數 一輪的得分 直接表示您在本輪中獲得的積分數。2.一輪的得分 表示本輪獲得的得分是前兩輪有效回合得分的總和。3.d 一輪的得分 表示本輪獲得的得分是前一輪有效回合得分的兩倍。4.c 乙個操作,這不是乙個回合的分數 表示...