• leetcode_682. 棒球比赛


    你现在是一场采特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。
    
    比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中 ops[i] 是你需要记录的第 i 项操作,ops 遵循下述规则:
    
    整数 x - 表示本回合新获得分数 x
    "+" - 表示本回合新获得的得分是前两次得分的总和。题目数据保证记录此操作时前面总是存在两个有效的分数。
    "D" - 表示本回合新获得的得分是前一次得分的两倍。题目数据保证记录此操作时前面总是存在一个有效的分数。
    "C" - 表示前一次得分无效,将其从记录中移除。题目数据保证记录此操作时前面总是存在一个有效的分数。
    请你返回记录中所有得分的总和。
    
     
    
    示例 1:
    
    输入:ops = ["5","2","C","D","+"]
    输出:30
    解释:
    "5" - 记录加 5 ,记录现在是 [5]
    "2" - 记录加 2 ,记录现在是 [5, 2]
    "C" - 使前一次得分的记录无效并将其移除,记录现在是 [5].
    "D" - 记录加 2 * 5 = 10 ,记录现在是 [5, 10].
    "+" - 记录加 5 + 10 = 15 ,记录现在是 [5, 10, 15].
    所有得分的总和 5 + 10 + 15 = 30
    示例 2:
    
    输入:ops = ["5","-2","4","C","D","9","+","+"]
    输出:27
    解释:
    "5" - 记录加 5 ,记录现在是 [5]
    "-2" - 记录加 -2 ,记录现在是 [5, -2]
    "4" - 记录加 4 ,记录现在是 [5, -2, 4]
    "C" - 使前一次得分的记录无效并将其移除,记录现在是 [5, -2]
    "D" - 记录加 2 * -2 = -4 ,记录现在是 [5, -2, -4]
    "9" - 记录加 9 ,记录现在是 [5, -2, -4, 9]
    "+" - 记录加 -4 + 9 = 5 ,记录现在是 [5, -2, -4, 9, 5]
    "+" - 记录加 9 + 5 = 14 ,记录现在是 [5, -2, -4, 9, 5, 14]
    所有得分的总和 5 + -2 + -4 + 9 + 5 + 14 = 27
    示例 3:
    
    输入:ops = ["1"]
    输出:1
    
    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/baseball-game
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
    
    class Solution:
        def calPoints(self, ops: List[str]) -> int:
            ls=[]
            for x in ops:
                if x=='C':
                    ls.pop()
                elif x=='D':
                    ls.append(ls[-1]*2)
                elif x=='+':
                    ls.append(ls[-1]+ls[-2])
                else:
                    ls.append(int(x))
            s=0
            for x in ls:
                s+=x
            return s
    
  • 相关阅读:
    pat甲级 1155 Heap Paths (30 分)
    pat甲级 1152 Google Recruitment (20 分)
    蓝桥杯 基础练习 特殊回文数
    蓝桥杯 基础练习 十进制转十六进制
    蓝桥杯 基础练习 十六进制转十进制
    蓝桥杯 基础练习 十六进制转八进制
    51nod 1347 旋转字符串
    蓝桥杯 入门训练 圆的面积
    蓝桥杯 入门训练 Fibonacci数列
    链表相关
  • 原文地址:https://www.cnblogs.com/hqzxwm/p/14081234.html
Copyright © 2020-2023  润新知