682. 棒球比賽(Python)

題目

難度:★★☆☆☆
類型:棧

你現(xiàn)在是棒球比賽記錄員。
給定一個(gè)字符串列表,每個(gè)字符串可以是以下四種類型之一:
1.整數(shù)(一輪的得分):直接表示您在本輪中獲得的積分?jǐn)?shù)。

  1. "+"(一輪的得分):表示本輪獲得的得分是前兩輪有效 回合得分的總和。
  2. "D"(一輪的得分):表示本輪獲得的得分是前一輪有效 回合得分的兩倍。
  3. "C"(一個(gè)操作,這不是一個(gè)回合的分?jǐn)?shù)):表示您獲得的最后一個(gè)有效 回合的分?jǐn)?shù)是無(wú)效的,應(yīng)該被移除。

每一輪的操作都是永久性的,可能會(huì)對(duì)前一輪和后一輪產(chǎn)生影響。
你需要返回你在所有回合中得分的總和。

注意
輸入列表的大小將介于1和1000之間。
列表中的每個(gè)整數(shù)都將介于-30000和30000之間。

示例

示例 1
輸入: ["5","2","C","D","+"]
輸出: 30
解釋:
第1輪:你可以得到5分??偤褪牵?。
第2輪:你可以得到2分??偤褪牵?。
操作1:第2輪的數(shù)據(jù)無(wú)效??偤褪牵?。
第3輪:你可以得到10分(第2輪的數(shù)據(jù)已被刪除)??倲?shù)是:15。
第4輪:你可以得到5 + 10 = 15分??倲?shù)是:30。

示例 2
輸入: ["5","-2","4","C","D","9","+","+"]
輸出: 27
解釋:
第1輪:你可以得到5分??偤褪牵?。
第2輪:你可以得到-2分??倲?shù)是:3。
第3輪:你可以得到4分??偤褪牵?。
操作1:第3輪的數(shù)據(jù)無(wú)效。總數(shù)是:3。
第4輪:你可以得到-4分(第三輪的數(shù)據(jù)已被刪除)??偤褪牵?1。
第5輪:你可以得到9分??倲?shù)是:8。
第6輪:你可以得到-4 + 9 = 5分。總數(shù)是13。
第7輪:你可以得到9 + 5 = 14分??倲?shù)是27。

解答

這道題屬規(guī)則設(shè)計(jì),如果找到合適的數(shù)學(xué)抽象模型,設(shè)計(jì)起來(lái)會(huì)很容易。

我們用一個(gè)棧來(lái)保存所有有效的分?jǐn)?shù),可以順利應(yīng)對(duì)所有增刪元素的情況,最終棧中所有分?jǐn)?shù)之和即為最終分?jǐn)?shù)。

class Solution(object):
    def calPoints(self, ops):
        stack = []
        for op in ops:
            if op == "C":
                stack.pop()
            elif op == "D":
                stack.append(stack[-1] * 2)
            elif op == "+":
                stack.append(stack[-1] + stack[-2])
            else:
                stack.append(int(op))
        return sum(stack)

如有疑問(wèn)或建議,歡迎評(píng)論區(qū)留言~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 你現(xiàn)在是棒球比賽記錄員。給定一個(gè)字符串列表,每個(gè)字符串可以是以下四種類型之一:1.整數(shù)(一輪的得分):直接表示您在...
    小路_閱讀 224評(píng)論 0 0
  • 查看題目詳情可點(diǎn)擊此處。 題目 你現(xiàn)在是棒球比賽記錄員。給定一個(gè)字符串列表,每個(gè)字符串可以是以下四種類型之一: 整...
    Cloneable閱讀 174評(píng)論 0 0
  • Algorithm 第六周 LeetCode 682. Baseball Game 題目鏈接 解題語(yǔ)言 C 你現(xiàn)在...
    碼農(nóng)在途閱讀 330評(píng)論 0 0
  • 8月初的時(shí)候朋友矯矯在朋友圈發(fā)了個(gè)購(gòu)物小店,看到后剛開(kāi)始是拒絕的,但如今感覺(jué)消費(fèi)降級(jí)了,也想要點(diǎn)實(shí)惠東西,必...
    九朵星云閱讀 1,637評(píng)論 0 0
  • 我 闖進(jìn)了迷宮, 面對(duì)無(wú)數(shù)個(gè)不知?dú)w途的交叉口, 只能站在原...
    操場(chǎng)上的你和我閱讀 304評(píng)論 0 0

友情鏈接更多精彩內(nèi)容