你現在是棒球比賽記錄員。 給定乙個字串列表,每個字串可以是以下四種型別之一:遇到數字壓棧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。
遇到+號 先記錄棧頂元素,然後彈棧,再記錄棧頂元素,然後將記錄的元素壓棧,再將兩個元素相加後壓棧。
遇到d 記錄棧頂元素,然後*2壓棧
遇到c 彈棧
思路很清晰哈哈哈。
class
solution
else
if(ch==
"d"&&
!res.
empty()
)else
}while
(!res.
empty()
)return sum;}}
;
LeetCode 6 有效的括號
題目如下 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false 示例 4 輸入 輸出 false 示例 5...
Leetcode 6 子串行問題
給定乙個未經排序的整數陣列,找到最長且連續的的遞增序列。思路 要找乙個最長且連續,關鍵是連續,那麼只要遍歷,發現不連續就歸零,記錄最大值即可。class solution else tmp nums i max num max num index index max num return max n...
Z字型變換 LeetCode6
將乙個給定字串根據給定的行數,以從上往下 從左到右進行 z 字形排列。比如輸入字串為 leetcodeishiring 行數為 3 時,排列如下 l c i r e t o e s i i g e d h n 之後,你的輸出需要從左往右逐行讀取,產生出乙個新的字串,比如 lciretoesiiged...