LeetCode [栈] 682.Baseball Game(C++和Python实现)

leetcode c++栈 栈(堆栈) 栈类似一个瓶子,只能从一个口进出,属于一种线性表数据结构。堆栈存在两种操作:插入与删除。 瓶口就是栈顶,瓶底就是栈底,当栈里面没有元素时就是空栈。服从先进后出原则,越靠近瓶口的就越早出来。存储方式:顺序存储(类似数组,数组与容器,)与链式存储(类似单链表). 堆栈还可以分成: 静态栈:栈的大小固定,类似数组 动态栈:栈的大小会发生改变,类似链表 提示 当使用栈的时候,使用top前必须要判断一下栈是否为空,否则 参考 ... 阅读详情

682 Baseball Game [难度:简单] [stringstream:字符串转整数神器]

【题目】

You're now a baseball game point recorder.

Given a list of strings, each string can be one of the 4 following types:

  1. Integer (one round's score): Directly represents the number of points you get in this round.
  2. "+" (one round's score): Represents that the points you get in this round are the sum of the last two valid round's points.
  3. "D" (one round's score): Represents that the points you get in this round are the doubled data of the last valid round's points.
  4. "C" (an operation, which isn't a round's score): Represents the last validround's points you get were invalid and should be removed.

Each round's operation is permanent and could have an impact on the round before and the round after.

You need to return the sum of the points you could get in all the rounds.

Example 1:

Input: ["5","2","C","D","+"]
Output: 30
Explanation: 
Round 1: You could get 5 points. The sum is: 5.
Round 2: You could get 2 points. The sum is: 7.
Operation 1: The round 2's data was invalid. The sum is: 5.  
Round 3: You could get 10 points (the round 2's data has been removed). The sum is: 15.
Round 4: You could get 5 + 10 = 15 points. The sum is: 30.

Example 2:

Input: ["5","-2","4","C","D","9","+","+"]
Output: 27
Explanation: 
Round 1: You could get 5 points. The sum is: 5.
Round 2: You could get -2 points. The sum is: 3.
Round 3: You could get 4 points. The sum is: 7.
Operation 1: The round 3's data is invalid. The sum is: 3.  
Round 4: You could get -4 points (the round 3's data has been removed). The sum is: -1.
Round 5: You could get 9 points. The sum is: 8.
Round 6: You could get -4 + 9 = 5 points. The sum is 13.
Round 7: You could get 9 + 5 = 14 points. The sum is 27.

Note:

  • The size of the input list will be between 1 and 1000.
  • Every integer represented in the list will be between -30000 and 30000.

【题解C++】

既然是和最近的分数有关,那就是栈的思想啦~写这道题才发现stringstream这个字符串和整数相互转换的好东西!要找个时间好好整理下字符串相关的写题神器了,不然还得像以前一样吭哧吭哧自己造轮子= = 

class Solution {
public:
    //要小心,这里是二维数组,因为数字可能是两位以上~
    //所以ops[i]其实是一个string类型而不是字符
    int calPoints(vector<string>& ops) {
        stack<int> st;
        int sum = 0;
        for(int i=0;i<ops.size();i++)
        {
            //别忘了把pop出去的两个数再push回来
            if(ops[i]=="+")
            {
                int top1 = st.top();
                st.pop();
                int top2 = st.top();
                st.pop();
                sum += top1+top2;
                st.push(top2);
                st.push(top1);
                st.push(top1+top2);
            }
            else if(ops[i]=="D")
            {
                sum += st.top()*2;
                st.push(st.top()*2);
            }
            else if(ops[i]=="C")
            {
                sum -= st.top();
                st.pop();
            }
            //stringstream字符串转换为整型
            else
            {
                stringstream ss;
                ss<<ops[i];
                int tmp;
                ss>>tmp;
                sum += tmp;
                st.push(tmp);
            }
        }
        return sum;
    }
};

【解题Python】

 思路同C++。

class Solution:
    def calPoints(self, ops: List[str]) -> int:
        st = []
        for i in ops:
            if i=='+':
                st.append(st[-1]+st[-2])
            elif i=='D':
                st.append(st[-1]*2)
            elif i=='C':
                st.pop(-1)
            else:
                st.append(int(i))
        return sum(st)
YOLO26算法星形目标识别+训练好的模型+100张数据集+pyqt可视化界面.zip 附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[星星(Star)] 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 85 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9950** mAP50-95 | 0.8477 Precision | 1.0000 Recall | 0.9954 train/box_loss | 0.8235 train/cls_loss | 0.7275 val/box_loss | 0.7248 val/cls_loss | 0.9621 【训练过程分析】 85 轮训练后,我们得到了一个 mAP50 为 0.9950 的模型,这真是让人惊喜的成绩。一开始,模型的训练过程进展非常迅速,loss 在前 20 轮内从 1.5000 下降到 1.0000 附近,此后,loss 依然保持稳步下降,但速度明显放缓,特别是在第 30 轮到第 50 轮之间,loss 曲线进入了一个平台期,大约在 0.85 附近徘徊了 10 轮,直到第 60 轮左右才再度加速下降。这样的表现说明模型在前期阶段收敛良好,但到了后期,确实需要更多的训练轮次以确保模型的稳定性。 在验证集上,val_loss 保持平稳,没有出现明显的波动,这进一步证明了模型没有过拟合。然而,我们注意到在第 80 轮和第 85 轮之间,val_loss 似乎有所微弱的反弹,尽管这种波动并不显著。在训练集上,前 50 轮训... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。 立即下载

相关推荐

科技中介服务机构如何提升客户在技术评估与需求匹配环节的服务效率与专业度.docx

科技中介服务机构如何提升客户在技术评估与需求匹配环节的服务效率与专业度

LeetCode题目:删除字符串中的所有相邻重复项

删除字符串中的所有相邻重复项 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 示例: 输入:“abbaca” 输出:“ca” 解释: 例如,在 “abbaca” 中,我们可以删除 “bb” 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重...

一个不知名码农的专栏 1190

51单片机的温湿度检测报警系统仿真资料

51单片机的温湿度检测报警proteus仿真系统

LeetCode刷题(二十)-----栈(Java、C++)

155. 最小栈 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: MinStack minStack = new MinStack(); minStack.push(-2); minStack....

chenbo的博客 350

国央企创新负责人如何通过平台识别并引进关键技术?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

航空发动机轴承故障诊断

《航空发动机主轴承故障诊断的挑战与HIT数据集研究》 摘要: 航空发动机主轴承作为关键部件,其可靠性直接影响飞行安全。然而,主轴承故障诊断面临信号信噪比低、传输路径复杂、故障类型多样、变工况运行等挑战。哈尔滨工业大学团队开发的HIT数据集为研究提供了真实工况下的实验数据,包含正常、内圈和外圈故障三种状态,具有高仿真度和强挑战性特点。研究表明,传统诊断方法在该数据集上准确率仅71-85%,突显了诊断难度。团队提出的ISONet新方法通过输入空间过参数化技术,将诊断准确率提升至99%以上,为航空发动机轴承故障诊

tyutwuxuan的博客 996

Leetcode 215. 数组中的第K个最大元素 解题思路及C++实现

解题思路: 用最小堆来存储k个最大的值,遍历一次nums容器,然后返回最小堆中最上面节点的值即可。 C++中使用priority_queue来实现最小堆。代码如下: class Solution { public: int findKthLargest(vector<int>& nums, int k) { priority_queue&l...

PaniniGu的博客 387

UnityWebGL异常捕获全攻略:从报错提示到完美解决的3种配置方案

本文详细解析了UnityWebGL项目中异常捕获的三种核心配置方案:禁用异常、仅捕获显式异常以及完全捕获异常(无堆栈跟踪)。通过对比不同方案在构建体积、运行性能及错误信息详细度上的差异,帮助开发者根据开发、测试与发布阶段的不同需求,选择并配置最优的异常处理策略,从而有效提升WebGL应用的调试效率和线上稳定性。

5f4d3s2a1q的博客 398

LeetCode——第一百五十五题(C++):最小栈

题目 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) – 将元素 x 推入栈中。 pop() – 删除栈顶的元素。 top() – 获取栈顶元素。 getMin() – 检索栈中的最小元素。 示例: MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); m...

一七 272

图像去雨:超详细手把手写 pytorch 实现代码(带注释)

占个坑,过几天来写

书山有路,学海无涯! 1万+

恭喜,恭喜,iMouse爱鼠XP版全面发布测试,苹果手机自动化测试必须

电脑控制苹果手机,免越狱,免签名,自动化测试

qq_41057894的博客 1063

[LeetCode] 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...

weixin_30496431的博客 126

智能车图像处理16-进阶篇8--右环岛状态机与补线

这篇文章主要讲述智能车竞赛中如何判断右环岛并且进行状态补线。

taiyuezyh的博客 1万+

Leetcode刷题笔记(C++)—— 栈队列

Leetcode刷题笔记(C++)—— 栈队列 整理一下刷题过程中的思路,在这里进行一下总结与分享。 github地址:https://github.com/lvjian0706/Leetcode-solutions github项目是刚刚新建的,陆续会将整理的代码以及思路上传上去,代码是基于C++与python的。同时会将基础的排序算法等也一并进行整理上传。 94. 二叉树的中序遍历 给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 2 / 3 输出: [1,3,2]

CV小菜鸟的博客 369

【Network Management】AUTOSAR局部网络管理从0到1配置实践

AUTOSAR局部网络管理从0到1配置实践

qq_36056498的博客 2915

[Dify 实战] 如何在内网环境部署 Dify 应用:彻底离线的企业级方案解析

企业内网环境如何离线部署Dify?本文提供详细教程:Dify作为开源AI平台,支持完全离线部署,无需外网访问。文中介绍两种部署方式:推荐使用Docker一键部署,也可选择源码安装定制化方案。重点讲解内网模型配置(支持Ollama/GPT-OSS等)、知识库存储(MinIO/PostgreSQL)及内网代理设置,并给出常见问题排查方法。该方案适用于金融、政府等对数据安全要求高的场景,确保敏感数据不泄露,实现完全本地化的AI应用闭环。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 453

leetcode最小栈c++

最小栈 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: MinStack minStack = new MinStack(); minStack.push(-2); minStack.push...

陈乐乐的博客 586

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

c# Leetcode 682. 棒球比赛(栈)

执行用时: 160 ms, 在Baseball Game的C#提交中击败了56.52% 的用户 题目链接:https://leetcode-cn.com/problems/baseball-game/ 从这道题开始,开启栈的新征程。 public class Solution { public int CalPoints(string[] ops) { var st...

us2019的博客 310

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

用栈实现队列

使用栈实现队列的下列操作: push(x) – 将一个元素放入队列的尾部。 pop() – 从队列首部移除元素。 peek() – 返回队列首部的元素。 empty() – 返回队列是否为空。 示例: MyQueue queue = new MyQueue(); queue.push(1); queue.push(2); queue.peek(); // 返回 1 queue.pop(); ...

TANGY的博客 533

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

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...

xunalove的博客 467

Baseball Game问题及解法

682. Baseball Game LeetCode

刘天的博客 1064

leetcode_c++:栈:Remove Duplicate Letters(316 )

Given a string which contains only lowercase letters, remove duplicate letters so that every letter appear once and only once. You must make sure your result is the smallest in lexicographical order am

LandscapeMi 651

分门别类刷leetcode——栈、队列、堆(C++实现)

leetcode 225 用队列实现栈 使用队列实现栈的下列操作: push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空 注意: 你只能使用队列的基本操作-- 也就是push to back,peek/pop from front,size, 和is empty这些操作是合法的。 你所使用...

一直走,不要回头 468

Leetcode题目:最小栈(c++实现)

题目 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 1.push(x) – 将元素 x 推入栈中。 2.pop() – 删除栈顶的元素。 3.top() – 获取栈顶元素。 4.getMin() – 检索栈中的最小元素。 示例 示例: MinStack minStack = new MinStack(); minStack.push(-2); minStac...

qq_45449668的博客 307

LeetCode: 155. 最小栈(C++)

题目: 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: MinStack minStack = new MinStack(); minStack.push(-2); minStac...

Implementation 2224
上一篇: LeetCode [栈] 844.Backspace String Compare(C++和Python实现)
下一篇: LeetCode [栈] 496.Next Greater Element I(C++和Python实现)
DayDreammerⅠ
博客等级 码龄9年 9粉丝 122原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值