zoukankan      html  css  js  c++  java
  • 983. 棒球游戏

    983. 棒球游戏

    中文English

    现在你是棒球比赛分记录员。

    给定一个字符串数组,每一个字符串可以是以下4种中的其中一个:

    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 分(回合 3的数据已经被移除了),和为:-1。
    回合 5: 你可以得到 9 分,和为:8。
    回合 6: 你可以得到 -4 + 9 = 5 分,和为:13。
    回合 7: 你可以得到 9 + 5 = 14 分,和为27。
    

    注意事项

    • 输入列表的大小在 1 到 1000 之间。
    • 列表中的整数大小在 -30000 到 30000 之间。
     
     
    输入测试数据 (每行一个参数)如何理解测试数据?
    class Solution:
        '''
        大致思路:
        1.分为四种情况,整数,C,D,+。初始化res,循环ops,如果是C的话,需要移除上一个元素,其他的分情况append到res里面,最终返回res即可
        '''
        def calPoints(self,ops):
            res = []
            for num in ops:
                if num == 'C':
                    ##移除上一个记录,默认第一个应该不会出现C,应该是整数之后才会出现C才符合规则
                    res.pop()
                elif num == 'D':
                    res.append(int(res[-1])*2)
                elif num == '+':
                    res.append(int(res[-1]) +int(res[-2]))
                else:
                    res.append(int(num))
            return sum(res)
  • 相关阅读:
    什么是php面向对象及面向对象的三大特性
    php类的定义与实例化方法
    php面向对象之$this->用法简述
    url的主要功能是什么
    PHP字符串比较函数详解
    PHP截取字符串函数substr()函数实例用法详解
    php 读取文件
    php 正则达达示中的模式修正符
    php正则表示中的元字符
    php 正则表达示中的原子
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12590644.html
Copyright © 2011-2022 走看看