欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Go語言LeetCode題解682棒球比賽

 更新時間:2022年12月28日 15:42:52   作者:劉09k11  
這篇文章主要為大家介紹了Go語言LeetCode題解682棒球比賽示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

題目描述

682. 棒球比賽

你現(xiàn)在是一場采用特殊賽制棒球比賽的記錄員。這場比賽由若干回合組成,過去幾回合的得分可能會影響以后幾回合的得分。

比賽開始時,記錄是空白的。你會得到一個記錄操作的字符串列表 ops,其中 ops[i] 是你需要記錄的第 i 項操作,ops 遵循下述規(guī)則:

  • 整數(shù) x - 表示本回合新獲得分數(shù) x
  • "+" - 表示本回合新獲得的得分是前兩次得分的總和。題目數(shù)據(jù)保證記錄此操作時前面總是存在兩個有效的分數(shù)。
  • "D" - 表示本回合新獲得的得分是前一次得分的兩倍。題目數(shù)據(jù)保證記錄此操作時前面總是存在一個有效的分數(shù)。
  • "C" - 表示前一次得分無效,將其從記錄中移除。題目數(shù)據(jù)保證記錄此操作時前面總是存在一個有效的分數(shù)。 請你返回記錄中所有得分的總和。

示例 1:

輸入:ops = ["5","2","C","D","+"]
輸出:30
解釋:
"5" - 記錄加 5 ,記錄現(xiàn)在是 [5]
"2" - 記錄加 2 ,記錄現(xiàn)在是 [5, 2]
"C" - 使前一次得分的記錄無效并將其移除,記錄現(xiàn)在是 [5].
"D" - 記錄加 2 * 5 = 10 ,記錄現(xiàn)在是 [5, 10].
"+" - 記錄加 5 + 10 = 15 ,記錄現(xiàn)在是 [5, 10, 15].
所有得分的總和 5 + 10 + 15 = 30

示例 2:

輸入:ops = ["5","-2","4","C","D","9","+","+"]
輸出:27
解釋:
"5" - 記錄加 5 ,記錄現(xiàn)在是 [5]
"-2" - 記錄加 -2 ,記錄現(xiàn)在是 [5, -2]
"4" - 記錄加 4 ,記錄現(xiàn)在是 [5, -2, 4]
"C" - 使前一次得分的記錄無效并將其移除,記錄現(xiàn)在是 [5, -2]
"D" - 記錄加 2 * -2 = -4 ,記錄現(xiàn)在是 [5, -2, -4]
"9" - 記錄加 9 ,記錄現(xiàn)在是 [5, -2, -4, 9]
"+" - 記錄加 -4 + 9 = 5 ,記錄現(xiàn)在是 [5, -2, -4, 9, 5]
"+" - 記錄加 9 + 5 = 14 ,記錄現(xiàn)在是 [5, -2, -4, 9, 5, 14]
所有得分的總和 5 + -2 + -4 + 9 + 5 + 14 = 27

示例 3:

輸入:ops = ["1"]
輸出:1

提示:

  • 1 <= ops.length <= 1000
  • ops[i] 為 "C"、"D"、"+",或者一個表示整數(shù)的字符串。整數(shù)范圍是 [-3 * 10^4, 3 * 10^4]
  • 對于 "+" 操作,題目數(shù)據(jù)保證記錄此操作時前面總是存在兩個有效的分數(shù)
  • 對于 "C" 和 "D" 操作,題目數(shù)據(jù)保證記錄此操作時前面總是存在一個有效的分數(shù)

思路分析

采用棧的方法,初始化一個空棧stack_i,每次從字符串中拿出一個字符,第一個字符都為數(shù)字,將當前字符壓入棧底

若字符中取到C的話,表示將當前棧頂?shù)脑厝〕?,若字符為D的話,表示將當前棧頂元素的值乘以2倍,得出新的值不需要

替換棧頂?shù)闹?,因為每一步操作都是獨立的,都是生成一個獨立的值,所以需要將生成的值放入棧頂,如取出的字符為+,則表示將

當前棧頂?shù)闹岛蜅m斚旅娴哪莻€值相加生成一個新的值,新的值也是獨立操作得出來的,所以需要壓入棧頂,最后將棧中的值每個元素

相加即得到最后的答案

AC 代碼

class Solution:
    def calPoints(self, ops: List[str]) -> int:
        stack_i = []
        for i in ops:
            if i == 'C':
                stack_i.pop()
            elif i == 'D':
                stack_i.append(int(stack_i[-1])*2)
            elif i == '+':
                stack_i.append(int(stack_i[-1])+ int(stack_i[-2]))
            else:
                stack_i.append(int(i))
        return(sum(stack_i))

以上就是Go語言LeetCode題解682棒球比賽的詳細內(nèi)容,更多關于Go語言題解棒球比賽的資料請關注腳本之家其它相關文章!

相關文章

  • go語言中數(shù)據(jù)接口set集合的實現(xiàn)

    go語言中數(shù)據(jù)接口set集合的實現(xiàn)

    set集合是一種常見的數(shù)據(jù)結構,它代表了一個唯一元素的集合,本文主要介紹了set的基本特性,包括唯一性、無序性、可變性和集合運算,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-10-10
  • golang定時器和超時的使用詳解

    golang定時器和超時的使用詳解

    這篇文章主要介紹了golang定時器和超時的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 重學Go語言之如何開發(fā)RPC應用

    重學Go語言之如何開發(fā)RPC應用

    這篇文章主要為大家詳細介紹了在Go語言中如何構建RPC應用,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-09-09
  • GoFrame代碼優(yōu)化gconv類型轉(zhuǎn)換避免重復定義map

    GoFrame代碼優(yōu)化gconv類型轉(zhuǎn)換避免重復定義map

    這篇文章主要為大家介紹了GoFrame代碼優(yōu)化gconv類型轉(zhuǎn)換避免重復定義map示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Windows10系統(tǒng)下安裝Go環(huán)境詳細步驟

    Windows10系統(tǒng)下安裝Go環(huán)境詳細步驟

    Go語言是谷歌推出的一款全新的編程語言,可以在不損失應用程序性能的情況下極大的降低代碼的復雜性,這篇文章主要給大家介紹了關于Windows10系統(tǒng)下安裝Go環(huán)境的詳細步驟,需要的朋友可以參考下
    2023-11-11
  • Go語言通過smtp發(fā)送郵件的方法

    Go語言通過smtp發(fā)送郵件的方法

    這篇文章主要介紹了Go語言通過smtp發(fā)送郵件的方法,涉及Go語言發(fā)送郵件的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • Go目錄文件路徑操作的實現(xiàn)

    Go目錄文件路徑操作的實現(xiàn)

    在Go語言中,可以使用絕對路徑或相對路徑來表示文件路徑,本文就來介紹一下Go目錄文件路徑操作,感興趣的可以了解一下
    2023-10-10
  • golang讀取文件的常用方法總結

    golang讀取文件的常用方法總結

    今天小編就為大家分享一篇關于golang讀取文件的常用方法總結,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • golang簡單獲取上傳文件大小的實現(xiàn)代碼

    golang簡單獲取上傳文件大小的實現(xiàn)代碼

    這篇文章主要介紹了golang簡單獲取上傳文件大小的方法,涉及Go語言文件傳輸及文件屬性操作的相關技巧,需要的朋友可以參考下
    2016-07-07
  • go語言LeetCode題解1030距離順序排列矩陣單元格

    go語言LeetCode題解1030距離順序排列矩陣單元格

    這篇文章主要為大家介紹了go語言LeetCode題解1030距離順序排列矩陣單元格,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12

最新評論