领扣LintCode算法问题答案-983. 棒球游戏

目录

  • 983. 棒球游戏
  • 题解
  • 鸣谢

983. 棒球游戏

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

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

  1. 整数 (一个回合的分数): 直接表示这回合你得到的分数。
  2. “+” (一个回合的分数): 表示这回合你获得的分数为前两个 有效 分数之和。
  3. “D” (一个回合的分数): 表示这回合你得到的分数为你上一次获得的有效分数的两倍。
  4. “C” (一种操作,而非一个回合的分数): 表示你上回合的有效分数是无效的,需要移除。每一轮的操作都是永久性的,可能会影响之前和之后的一轮。

你需要返回在所有回合中获得总分数。

输入列表的大小在 1 到 1000 之间。
列表中的整数大小在 -30000 到 30000 之间。

样例 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。

题解

public class Solution {/*** @param ops: the list of operations* @return:  the sum of the points you could get in all the rounds*/public int calPoints(String[] ops) {// Write your code hereint            sum   = 0;List<Integer> points = new ArrayList<>();for (String op : ops) {switch (op) {case "C":{int point = points.get(points.size() - 1);sum -= point;points.remove(points.size() - 1);}break;case "D":{int point = points.get(points.size() - 1);point += point;points.add(point);sum += point;}break;case "+":{int point = points.get(points.size() - 1);point += points.get(points.size() - 2);points.add(point);sum += point;}break;default:{int point = Integer.parseInt(op);points.add(point);sum += point;}break;}}return sum;}
}

原题链接点这里

鸣谢

非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。
欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。

领扣LintCode算法问题答案-983. 棒球游戏相关推荐

  1. 领扣LintCode算法问题答案-83. 落单的数 II

    领扣LintCode算法问题答案-83. 落单的数 II 目录 83. 落单的数 II 描述 样例 1: 样例 2: 题解 鸣谢 83. 落单的数 II 描述 给出 3 * n + 1 个非负整数,除 ...

  2. 领扣LintCode算法问题答案-1438. 较大分组的位置

    领扣LintCode算法问题答案-1438. 较大分组的位置 目录 1438. 较大分组的位置 描述 样例 1: 样例 2: 样例 3: 题解 鸣谢 1438. 较大分组的位置 描述 在一个由小写字母 ...

  3. 领扣LintCode算法问题答案-175. 翻转二叉树

    领扣LintCode算法问题答案-175. 翻转二叉树 目录 175. 翻转二叉树 鸣谢 175. 翻转二叉树 翻转一棵二叉树.左右子树交换. 样例 1: 输入: {1,3,#} 输出: {1,#,3 ...

  4. 领扣LintCode算法问题答案-514. 栅栏染色

    领扣LintCode算法问题答案-514. 栅栏染色 目录 514. 栅栏染色 题解 鸣谢 514. 栅栏染色 我们有一个栅栏,它有n个柱子,现在要给柱子染色,有k种颜色可以染. 必须保证不存在超过2 ...

  5. 领扣LintCode算法问题答案-82. 落单的数

    领扣LintCode算法问题答案-82. 落单的数 目录 82. 落单的数 鸣谢 82. 落单的数 给出 2 * n + 1个数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字. 样例 1: ...

  6. 领扣LintCode算法问题答案-420. 报数

    领扣LintCode算法问题答案-420. 报数 目录 420. 报数 鸣谢 420. 报数 报数指的是,按照其中的整数的顺序进行报数,然后得到下一个数.如下所示: 1, 11, 21, 1211, ...

  7. 领扣LintCode算法问题答案:56. 两数之和

    56. 两数之和 描述 给一个整数数组,找到两个数使得他们的和等于一个给定的数 target. 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标.注意这里下标的范围是 ...

  8. 【精】领扣LintCode算法问题答案:336. 文本压缩

    336. 文本压缩 描述 给你一个只含有可见字符(ASCII 码范围 32 至 126)文本文件,文件中可能出现一些重复的单词,你需要对它们进行压缩. 压缩规则如下: 如果原文件中的字符不是英文字符, ...

  9. 领扣LintCode问题答案-2. 尾部的零

    领扣LintCode问题答案-2. 尾部的零 目录 2. 尾部的零 鸣谢 2. 尾部的零 设计一个算法,计算出n阶乘中尾部零的个数 样例 1: 输入: 11 输出: 2 样例解释: 11! = 399 ...

  10. 领扣LintCode问题答案-58. 四数之和

    领扣LintCode问题答案-58. 四数之和 目录 58. 四数之和 鸣谢 58. 四数之和 给一个包含n个数的整数数组S,在S中找到所有使得和为给定整数target的四元组(a, b, c, d) ...

最新文章

  1. 用友服务器整体迁移--数据库附加
  2. 分类数据的分析-卡方检验运用
  3. dede设置当前栏目的样式
  4. AI 硬件产品如何进行创新突围?
  5. java中为什么还要防止内存泄露_JAVA防止内存的泄漏什么意思,内存还能泄露?...
  6. Android PullToRefreshListView上拉刷新和下拉刷新
  7. SurfaceView 实现 转盘抽奖
  8. php微信投票刷票,微信投票程序源码
  9. Linux下发包工具sendip的使用
  10. PDF 的命令行操作
  11. 游戏编程模式 - 观察者模式
  12. 方差与偏差的意义与推导过程
  13. 从后端开发转大数据开发怎么样?
  14. intel bsf指令
  15. 工业物联网RTU与DTU的区别
  16. 优酷路由宝YK-L1刷小米路由固件
  17. 还记得小时候玩的泡泡龙吗?用CocosCreator实现它!
  18. 计算机网络面试——HTTP篇
  19. MySQL集群解决方案(1):MySQL数据库的集群方案
  20. 基于Bootstrap3制作响应式布局网站(一)

热门文章

  1. CSS outline 属性
  2. 已解决:系统更新报错KB3001652--错误0x80070643
  3. Android 计时器
  4. 计算机上没有保存任何数据源,Excel数据表找不到链接莫着急——三点操作重建数据的源文件-查看源文件...
  5. Could not resolve project
  6. 照相馆、摄影工作室如何利用选片和底片下载来做微信公众号吸粉
  7. activiti设计器会签人员配置
  8. ipad能不能编写python_【已解决】用ipad编写python代码
  9. c语言的pow函数运用
  10. Premiere 添加字幕