LeetCode 682棒球比赛

Leetcode:682. 棒球比赛 (最详细的解法!!!) 你现在是棒球比赛记录员。 给定一个字符串列表,每个字符串可以是以下四种类型之一: 1.整数(一轮的得分):直接表示您在本轮中获得的积分数。 2. “+”(一轮的得分):表示本轮获得的得分是前两轮有效 回合得分的总和。 3. “D”(一轮的得分):表示本轮获得的得分是前一轮有效 回合得分的两倍。 4. “C”(一个操作,这不是一个回合的分数):表示您获得的最后一个有效 回合的分数是无效的,应该被移除... 阅读详情

题目


你现在是棒球比赛记录员。
给定一个字符串列表,每个字符串可以是以下四种类型之一:
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分(第三轮的数据已被删除)。总和是:-1。
第5轮:你可以得到9分。总数是:8。
第6轮:你可以得到-4 + 9 = 5分。总数是13。
第7轮:你可以得到9 + 5 = 14分。总数是27。
注意:

输入列表的大小将介于1和1000之间。
列表中的每个整数都将介于-30000和30000之间。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/baseball-game

思路


这道题实际上相当简单,我们计算当前位置的值时最多只是用到当前位置前面两个位置的值,所以我们可以通过栈的结构,将数值压入一个栈中,然后遍历这个栈,将相加的结果输出

代码


/**
 * @param {string[]} ops
 * @return {number}
 */
var calPoints = function(ops) {
    let arr=[];
    let len=ops.length;
    for(let i=0;i<len;i++){
        if(ops[i]=='+'){
            if(arr.length>0){
                if(arr.length==1){
                    arr.push(arr[0]);
                }else{
                    arr.push(parseInt(arr[arr.length-1])+parseInt(arr[arr.length-2]));
                }
            }
        }else if(ops[i]=='D'){
            arr.push(arr.length>0?parseInt(arr[arr.length-1]*2):0);
        }else if(ops[i]=='C'){
            arr.pop();
        }else{
            arr.push(ops[i]);
        }
    }
    let sum=0;
    for(i=0;i<arr.length;i++){
        sum+=parseInt(arr[i]);
    }
    return sum;
};
棒球比赛 一个简单的棒球游戏,目标是在记录3个出局之前尽可能多地得分。 游戏代码包含在两个java文件中。 要玩游戏,请从“发行”部分下载BaseballGame.jar,并将6张图像下载到同一文件夹中,然后打开JAR文件。 立即下载

相关推荐

PIDNet实战:如何在Cityscapes数据集上实现93.2 FPS的实时语义分割(附完整训练代码)

本文提供了在Cityscapes数据集上实现实时语义分割模型PIDNet的完整工程实践指南。PIDNet凭借其独特的比例-积分-微分三分支架构,在CVPR 2023上取得了速度与精度的出色平衡。文章详细介绍了从环境配置、数据预处理、模型训练到性能优化与部署的全流程,并分享了实现93.2 FPS高推理速度的关键技巧与代码。

weixin_29047919的博客 374

LeetCode——682. 棒球比赛

题目描述: 小白写法。。。。 代码如下: class Solution { public: int calPoints(vector<string>& ops) { stack<int>s; int n; int a,b,c; int sum=0; for(int i=0;i<ops.size();i++) { if(ops[i]=="C")

FYPPPP的博客 757

用ADS复现一篇MTT顶刊的GAN功率放大器:从理论推导到版图仿真的完整避坑指南

本文详细解析了如何利用ADS软件复现MTT顶刊中的E/F3类GaN功率放大器设计,从理论推导到版图仿真的全流程。通过核心设计理念解析、ADS环境配置、输出匹配网络优化等关键步骤,提供了一套完整的工程实践指南,帮助工程师跨越学术理论与实际应用的鸿沟,实现高效率射频功率放大器的设计。

weixin_30654583的博客 315

Leetcode 682. 棒球比赛 解题思路及C++实现

解题思路: 这道题比较简单,就是直接用一个stack,依次处理输入容器中的每一个字符串,要注意的是:将string转为int,C++中函数为stoi(); class Solution { public: int calPoints(vector<string>& ops) { int res = 0; //一定要初始化为0 ...

PaniniGu的博客 511

汽车诊断之UDS入门-0x19 0x0A服务

0x19 0x0A解析

weixin_44842720的博客 3836

Android逆向分析

Android 逆向开发是指对已发布的 Android 应用进行分析和破解,以了解应用程序的内部工作原理,获取应用程序的敏感信息,或者修改应用程序的行为。Android应用 Java编写的,利用Android SDK编译代码,并并且把所有的数据和资源文件打包成一个APK(Android Package)文件这是一个后缀名为.apk的压缩文件,apk文件中包含了一个Anddroid应用程序的所有内容,是Android平台用于安装应用程序的文件。

qq_51598534的博客 6294

leetcode 682. 棒球比赛

解题思路: public static void main(String[] args) { String[] ops={"5","2","C","D","+"}; int i = calPoints(ops); System.out.println(i); } public static int calPoints(Stri...

厚积薄发的博客 428

FinRL实战:5步搞定股票量化交易策略(附Python代码)

本文详细介绍了如何使用FinRL框架,通过5个步骤构建基于深度强化学习的股票量化交易策略。内容涵盖从环境搭建、数据获取与预处理,到交易环境构建、模型训练(如PPO算法),以及策略回测评估与优化的完整流程,并提供了可运行的Python代码示例,帮助读者快速入门AI驱动的量化交易。

weixin_29062865的博客 627

leetcode---C++实现---682. Baseball Game(棒球比赛)

题目 You’re now a baseball game point recorder. Given a list of strings, each string can be one of the 4 following types: Integer (one round’s score): Directly represents the number of points you get i...

u013482632的博客 569

UFS 3.1协议分析(第一至四章) -- UFS概述

Contents协议规范规范参考术语和定义简单概述通用特性接口特性功能特性 协议规范     UFS3.1协议规定了UFS电气接口和存储器件的特性以及系统架构。 特性:低功耗、高数据吞吐量、低电磁干扰、大容量存储器子系统效率的优化 电气接口:使用基于MIPI M-PHY的高级差分接口;M-PHY作为物理层,MIPI UniPro作为链路层,二者结合形成UFS接口的互联。 架构模型:参考 INCITS T10(SCSI) SAM 标准,命令协议基于 INCITS T1

Frank_sample的专栏 1万+

Python爬虫终极指南:异步爬虫+Playwright逆向,高效爬取携程旅游数据

Playwright解决动态渲染和加密参数难题,模拟真实浏览器环境;aiohttp异步提升抓取效率,结合代理池和并发控制规避风控;指纹伪装、行为模拟等技巧大幅降低被检测概率。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2950

#力扣LeetCode682. 棒球比赛 @FDDLC

题目描述: 682. 棒球比赛 - 力扣(LeetCode) (leetcode-cn.com) Java代码: class Solution { public int calPoints(String[] a) { int[] t=new int[1000]; int ans=0,ti=-1; for(int i=0;i<a.length;i++){ char c=a[i].charAt(a[i].lengt

LiuXingchang的博客 405

8、内存交织技术详解

本文详细解析了内存交织技术的基本原理、工作机制及实现方式,探讨了其在提升内存访问速度和系统性能中的关键作用。文章还分析了内存交织的优缺点、实际应用场景以及与其他优化技术的结合应用,并提出了未来发展的可能方向,为理解与运用该技术提供了全面参考。

g9h0i1的博客 549

leetcode 题号#682 棒球比赛

查看题目详情可点击此处。 题目 你现在是棒球比赛记录员。 给定一个字符串列表,每个字符串可以是以下四种类型之一: 整数(一轮的得分):直接表示您在本轮中获得的积分数。 “+”(一轮的得分):表示本轮获得的得分是前两轮有效 回合得分的总和。 “D”(一轮的得分):表示本轮获得的得分是前一轮有效 回合得分的两倍。 “C”(一个操作,这不是一个回合的分数):表示您获得的最后一个有效 回合的分数是无效的...

Cloneable的博客 258

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【LeetCode:682. 棒球比赛 + 模拟】

【LeetCode:682. 棒球比赛 + 模拟】你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。 比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中 ops[i] 是你需要记录的第 i 项操作,ops 遵循下述规则: - 整数 x - 表示本回合新获得分数 x - "+" - 表示本回合新获得的得分是前两次得分的总和。题目数据保证记录此操作时前面总是存在两个有效的分数。 - "D" - 表示本回合新获得的得分是前一次得

Coder_ljw的博客 825

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

682.力扣LeetCode_棒球比赛

这段代码实现了一个棒球比赛得分计算器。它通过栈数据结构处理四种操作指令:数字(直接记录)、+(前两分数和)、D(前一分数的2倍)、C(撤销上一次记录)。代码使用数组模拟栈,根据指令类型执行相应操作并更新栈状态,最后累加栈中所有有效分数得到总分。关键点包括:switch语句区分指令类型、栈顶指针管理、以及atoi函数处理数字转换。算法时间复杂度为O(n),空间复杂度为O(n),能正确处理所有合法输入序列。

2401_82472941的博客 248

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Leetcode 682题 棒球比赛(Easy)

你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表ops,其中ops[i]是你需要记录的第i项操作,opsxx"+""D""C"请你返回记录中所有得分的总和。30"5" - 记录加 5 ,记录现在是 [5]"2" - 记录加 2 ,记录现在是 [5, 2]"C" - 使前一次得分的记录无效并将其移除,记录现在是 [5].

qq_49979552的博客 479

力扣(LeetCode)682. 棒球比赛

#include<iostream> #include<vector> #include<numeric> using namespace std; class Solution { public: int calPoints(vector<string>& ops) { vector<int> poin...

Pwnpanda的博客 274

LeetCode -682棒球比赛(C语言描述)

LeetCode 682 棒球比赛 题目来源 LeetCode -682 题目描述 注: 输入列表的大小将介于1和1000之间 列表中的每个整数都将介于-30000和30000之间。 本题用到了栈的先进后出的知识,本题已知栈的长度,构造静态栈,利用switch语句即可 int calPoints(char ** ops, int opsSize){ int sum=0; int Top=-1; //定义栈顶元素 int array[opsSize]; for(i

cloud 746

C++Leetcode682:棒球比赛

前言 1、采用vector实现。很快有了思路,其中字符串转换为整型的处理,耗费了较长时间,还是参考网上的方法。时间复杂度为O(n) 2、待优化。 题目 你现在是棒球比赛记录员。 给定一个字符串列表,每个字符串可以是以下四种类型之一: 1.整数(一轮的得分):直接表示您在本轮中获得的积分数。 2. “+”(一轮的得分):表示本轮获得的得分是前两轮有效 回合得分的总和。 3. “D”(一轮的得分):表...

weixin_43434305的博客 327

vector 力扣 682 棒球比赛

682 棒球比赛 你现在是棒球比赛记录员。 给定一个字符串列表,每个字符串可以是以下四种类型之一: 1.整数(一轮的得分):直接表示您在本轮中获得的积分数。 2. “+”(一轮的得分):表示本轮获得的得分是前两轮有效 回合得分的总和。 3. “D”(一轮的得分):表示本轮获得的得分是前一轮有效 回合得分的两倍。 4. “C”(一个操作,这不是一个回合的分数):表示您获得的最后一个有效 回合的分数是无效的,应该被移除。 每一轮的操作都是永久性的,可能会对前一轮和后一轮产生影响。 你需要返回你在所有回合中得分的

Gettler的博客 1364

力扣——编程基础682. 棒球比赛

你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中 ops[i] 是你需要记录的第 i 项操作,ops 遵循下述规则:整数 x - 表示本回合新获得分数 x“+” - 表示本回合新获得的得分是前两次得分的总和。题目数据保证记录此操作时前面总是存在两个有效的分数。“D” - 表示本回合新获得的得分是前一次得分的两倍。

m0_56222212的博客 420

Leetcode-682 棒球比赛

返回字符串表示的整数值。如果转换失败(例如字符串不表示有效的整数),函数会抛出异常。函数有多个重载版本,支持从字符串中提取整数,并可以处理不同的数值基数。是 C++11 引入的一个标准库函数,用于将字符串转换为整数。存储最终得分,依次遍历每个操作符并根据题目描述执行相应指令。用于存储每次计算后的合法得分,使用int 型变量。类的一部分,定义在头文件。

qewa132的博客 553

【leetcode-python-5】682. 棒球比赛

【leetcode-python-5】682. 棒球比赛渣渣原始版(85.64%)参考官方版(68.09%) leetcode 682. 棒球比赛 渣渣原始版(85.64%) 读题读了很久才看懂(泪目),看来自己写的还可以哈hhhhhh,开心了。 专门开个栈来存得分,数据多的时候,只用加一次嘛。 class Solution(object): def calPoints(self, ops): """ :type ops: List[str] :rt

huajiao4的博客 233

Leetcode—682. 棒球比赛【简单】(stoi函数、accumulate函数)

运行结果 之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

Atticus的博客 413
上一篇: LeetCode 16 最接近的三数之和 JavaScript实现
下一篇: vue学习笔记 解析diff算法
前端小黑
博客等级 码龄9年 148粉丝 222原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值