Leetcode682:棒球比赛

news/2025/2/19 8:33:18/

原文链接:682. 棒球比赛 - 力扣(LeetCode)


题目

        你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。

        比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 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

提示:

1 <= ops.length <= 1000
ops[i] 为 "C"、"D"、"+",或者一个表示整数的字符串。整数范围是 [-3 * 104, 3 * 104]
对于 "+" 操作,题目数据保证记录此操作时前面总是存在两个有效的分数
对于 "C" 和 "D" 操作,题目数据保证记录此操作时前面总是存在一个有效的分数

题解

解题思路
使用switch判断,用一个与所给数组等长的整数数组存储结果

class Solution {public int calPoints(String[] operations) {int[] res = new int[operations.length];for(int i=0,t=0;t<operations.length;t++){String temp = operations[t];//t遍历题给数组,i用于结果数组switch(temp){case "C"://因为是去除前一个数,所以要先减一i--;res[i] = 0;break;case "+":res[i] = res[i-1]+res[i-2];i++;break;case "D":res[i] = res[i-1]*2;i++;break;default://字符串转整数res[i]=Integer.parseInt(temp);i++;break;}}int sum=0;//遍历结果数组,求和for(int i : res){sum+=i;}return sum;}
}

时间:1ms         空间:39.4MB


http://www.ppmy.cn/news/2268.html

相关文章

2022最后一个月,我们该如何学Java​?

2022最后一个月&#xff0c;我们该如何学Java&#xff1f; 互联网的快速发展和激烈竞争&#xff0c;在世界编程语言排行榜中&#xff0c;Java位列前三&#xff0c;占全球编程市场份额的12%左右,各大公司对Java工程师的需求量都很大&#xff0c;要求也越来越高&#xff0c;优秀…

《MongoDB》Mongo Shell中的基本操作-删除操作一览

前端博主&#xff0c;热衷各种前端向的骚操作&#xff0c;经常想到哪就写到哪&#xff0c;如果有感兴趣的技术和前端效果可以留言&#xff5e;博主看到后会去代替大家踩坑的&#xff5e; 主页: oliver尹的主页 格言: 跌倒了爬起来就好&#xff5e; 来个关注吧&#xff0c;点个赞…

Docker: 小白之路九(从0搭建自己的Docker环境centos7)

Docker环境配置centos7版本 一. 配置对应的docker环境和nvidia-docker(注意加速镜像设置) 二. 环境配置 1. 拉取对应的镜像 docker pull nvidia/cuda:10.2-cudnn7-devel-centos72. 创建新版本的容器并搭建对应的环境 docker run -it --name felaim_sever_centos7 nvidia/c…

[python] 基于wordcloud库绘制词云图

词云Wordcloud是文本数据的一种可视化表示方式。它通过设置不同的字体大小或颜色来表现每个术语的重要性。词云在社交媒体中被广泛使用&#xff0c;因为它能够让读者快速感知最突出的术语。然而&#xff0c;词云的输出结果没有统一的标准&#xff0c;也缺乏逻辑性。对于词频相差…

MySQL经典案例50题

数据准备 建表、插入数据 -- 学生表 CREATE TABLE Student( s_id VARCHAR(20), s_name VARCHAR(20) NOT NULL DEFAULT, s_birth VARCHAR(20) NOT NULL DEFAULT, s_sex VARCHAR(10) NOT NULL DEFAULT, PRIMARY KEY(s_id) ); -- 课程表 CREATE TABLE Course( c_id VARCHAR(20),…

前端Gitee + Jenkins自动化实战(转)

# 前端Gitee Jenkins自动化实战 当我们熟悉了Jenkins 的使用后&#xff0c;接下来我们来配置一个基于 vue-element-admin 的实战项目&#xff0c;来感受一下自动化流程带给我们的优势。 首先我们需要创建一个 git 项目&#xff0c;至于代码仓库可以自选&#xff0c;这里为了…

《自己动手写CPU》学习记录(1)——第1章

引言 此专栏的文章记录自己学习《自己动手写CPU》的过程。算是一个学习笔记&#xff0c;里面也会夹杂个人的思考以及代码编写。希望自己可以像作者一样&#xff0c;坚持到最后。加油~~ 本篇学习MIPS32处理器的基本架构。 致谢 感谢书籍《自己动手写CPU》及其作者雷思磊。一…

Unity 符号表

目录 前言 关于Unity符号表 正文 程序crash日志&#xff1a; 解析 后记 记一次 Bugly 崩溃查找过程 unity-il2cpp&#xff1a; 前言 关于Unity符号表 关于项目真机调试时的崩溃问题&#xff0c;一般可以 logcat 或 xcode 看到相关的crash日志&#xff0c;拿到崩溃时的堆…