领扣LintCode算法问题答案-983. 棒球游戏
领扣LintCode算法问题答案-983. 棒球游戏
目录
- 983. 棒球游戏
- 题解
- 鸣谢
983. 棒球游戏
现在你是棒球比赛分记录员。
给定一个字符串数组,每一个字符串可以是以下4种中的其中一个:
- 整数 (一个回合的分数): 直接表示这回合你得到的分数。
- “+” (一个回合的分数): 表示这回合你获得的分数为前两个 有效 分数之和。
- “D” (一个回合的分数): 表示这回合你得到的分数为你上一次获得的有效分数的两倍。
- “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. 棒球游戏相关推荐
- 领扣LintCode算法问题答案-83. 落单的数 II
领扣LintCode算法问题答案-83. 落单的数 II 目录 83. 落单的数 II 描述 样例 1: 样例 2: 题解 鸣谢 83. 落单的数 II 描述 给出 3 * n + 1 个非负整数,除 ...
- 领扣LintCode算法问题答案-1438. 较大分组的位置
领扣LintCode算法问题答案-1438. 较大分组的位置 目录 1438. 较大分组的位置 描述 样例 1: 样例 2: 样例 3: 题解 鸣谢 1438. 较大分组的位置 描述 在一个由小写字母 ...
- 领扣LintCode算法问题答案-175. 翻转二叉树
领扣LintCode算法问题答案-175. 翻转二叉树 目录 175. 翻转二叉树 鸣谢 175. 翻转二叉树 翻转一棵二叉树.左右子树交换. 样例 1: 输入: {1,3,#} 输出: {1,#,3 ...
- 领扣LintCode算法问题答案-514. 栅栏染色
领扣LintCode算法问题答案-514. 栅栏染色 目录 514. 栅栏染色 题解 鸣谢 514. 栅栏染色 我们有一个栅栏,它有n个柱子,现在要给柱子染色,有k种颜色可以染. 必须保证不存在超过2 ...
- 领扣LintCode算法问题答案-82. 落单的数
领扣LintCode算法问题答案-82. 落单的数 目录 82. 落单的数 鸣谢 82. 落单的数 给出 2 * n + 1个数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字. 样例 1: ...
- 领扣LintCode算法问题答案-420. 报数
领扣LintCode算法问题答案-420. 报数 目录 420. 报数 鸣谢 420. 报数 报数指的是,按照其中的整数的顺序进行报数,然后得到下一个数.如下所示: 1, 11, 21, 1211, ...
- 领扣LintCode算法问题答案:56. 两数之和
56. 两数之和 描述 给一个整数数组,找到两个数使得他们的和等于一个给定的数 target. 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标.注意这里下标的范围是 ...
- 【精】领扣LintCode算法问题答案:336. 文本压缩
336. 文本压缩 描述 给你一个只含有可见字符(ASCII 码范围 32 至 126)文本文件,文件中可能出现一些重复的单词,你需要对它们进行压缩. 压缩规则如下: 如果原文件中的字符不是英文字符, ...
- 领扣LintCode问题答案-2. 尾部的零
领扣LintCode问题答案-2. 尾部的零 目录 2. 尾部的零 鸣谢 2. 尾部的零 设计一个算法,计算出n阶乘中尾部零的个数 样例 1: 输入: 11 输出: 2 样例解释: 11! = 399 ...
- 领扣LintCode问题答案-58. 四数之和
领扣LintCode问题答案-58. 四数之和 目录 58. 四数之和 鸣谢 58. 四数之和 给一个包含n个数的整数数组S,在S中找到所有使得和为给定整数target的四元组(a, b, c, d) ...
最新文章
- 用友服务器整体迁移--数据库附加
- 分类数据的分析-卡方检验运用
- dede设置当前栏目的样式
- AI 硬件产品如何进行创新突围?
- java中为什么还要防止内存泄露_JAVA防止内存的泄漏什么意思,内存还能泄露?...
- Android PullToRefreshListView上拉刷新和下拉刷新
- SurfaceView 实现 转盘抽奖
- php微信投票刷票,微信投票程序源码
- Linux下发包工具sendip的使用
- PDF 的命令行操作
- 游戏编程模式 - 观察者模式
- 方差与偏差的意义与推导过程
- 从后端开发转大数据开发怎么样?
- intel bsf指令
- 工业物联网RTU与DTU的区别
- 优酷路由宝YK-L1刷小米路由固件
- 还记得小时候玩的泡泡龙吗?用CocosCreator实现它!
- 计算机网络面试——HTTP篇
- MySQL集群解决方案(1):MySQL数据库的集群方案
- 基于Bootstrap3制作响应式布局网站(一)