题目描述:

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

比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 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” 操作,题目数据保证记录此操作时前面总是存在一个有效的分数

代码:

#include<sstream>
class Solution {public:int solve(string s){int score;stringstream ss;if(s[0]!='-'){ss<<s;ss>>score;}else{ss<<s.substr(1);ss>>score;score=score*(-1);}return score;}int calPoints(vector<string>& ops) {int sum=0;int n=ops.size();vector<int> v;for(int i=0;i<n;i++){if(ops[i]=="+"){ //这次得分是前两次分数之和v.push_back(v[v.size()-1]+v[v.size()-2]);}else if(ops[i]=="C"){ //移除上一次分数v.pop_back();}else if(ops[i]=="D"){ //这次得分是上一次分数的两倍v.push_back(2*v[v.size()-1]);}else{  v.push_back(solve(ops[i])); }}for(int i=0;i<v.size();i++)sum+=v[i];return sum;}
};

按照题目描述计算这一轮的分数,加入vector中保存,最后加和即可。
使用pop_back()即可删除最后一个元素(“即上一轮得分”)。

总结:

vector 中 pop_back() 删除最后一个元素。

【leetcode】棒球比赛 c++相关推荐

  1. LeetCode简单题之棒球比赛

    题目 你现在是一场采用特殊赛制棒球比赛的记录员.这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分. 比赛开始时,记录是空白的.你会得到一个记录操作的字符串列表 ops,其中 ops[ ...

  2. LeetCode:棒球比赛【682】

    LeetCode:棒球比赛[682] 题目描述 你现在是棒球比赛记录员. 给定一个字符串列表,每个字符串可以是以下四种类型之一: 1.整数(一轮的得分):直接表示您在本轮中获得的积分数. 2. &qu ...

  3. [LeetCode]682. 棒球比赛(Baseball Game)Java

    一.题目: LeetCode地址 你现在是棒球比赛记录员. 给定一个字符串列表,每个字符串可以是以下四种类型之一: 1.整数(一轮的得分):直接表示您在本轮中获得的积分数. 2. "+&qu ...

  4. 《LeetCode刷题》682. 棒球比赛(java篇)

    题目描述: 你现在是一场采用特殊赛制棒球比赛的记录员.这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分. 比赛开始时,记录是空白的.你会得到一个记录操作的字符串列表 ops,其中 o ...

  5. LeetCode(682)——棒球比赛(JavaScript)

    你现在是棒球比赛记录员. 给定一个字符串列表,每个字符串可以是以下四种类型之一: 1.整数(一轮的得分):直接表示您在本轮中获得的积分数. 2. "+"(一轮的得分):表示本轮获得 ...

  6. leetcode 682. 棒球比赛(Baseball Game)

    目录 题目描述: 示例 1: 示例 2: 解法: 题目描述: 你现在是棒球比赛记录员. 给定一个字符串列表,每个字符串可以是以下四种类型之一: 整数(一轮的得分):直接表示您在本轮中获得的积分数. & ...

  7. LeetCode——682. 棒球比赛

    题目描述: 你现在是一场采用特殊赛制棒球比赛的记录员.这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分.比赛开始时,记录是空白的.你会得到一个记录操作的字符串列表 ops,其中 op ...

  8. [LeetCode javaScript] 682. 棒球比赛

    你现在是棒球比赛记录员. 给定一个字符串列表,每个字符串可以是以下四种类型之一: 1.整数(一轮的得分):直接表示您在本轮中获得的积分数. 2. "+"(一轮的得分):表示本轮获得 ...

  9. LeetCode 682 棒球比赛

    你现在是棒球比赛记录员. 给定一个字符串列表,每个字符串可以是以下四种类型之一: 1.整数(一轮的得分):直接表示您在本轮中获得的积分数. 2. "+"(一轮的得分):表示本轮获得 ...

最新文章

  1. 《团队合作大坑合集》
  2. 通过图形界面配置Exchange2010 DAG
  3. matplotlib练习
  4. what you CAN LEARN FROM AUTOMATOR AND APPLE STEVE JOBS
  5. 自我学习的技巧和建议
  6. 重新开始我的园子生活了
  7. linux redhat 6.3: /lib/libz.so.1: no version information available
  8. HDU5187 zhx#39;s contest(计数问题)
  9. 带你自学Python系列(一):变量和简单数据类型(附思维导图)
  10. 转:开启nginx的gzip压缩的相关参数设置
  11. 数据挖掘产品 IBM SPSS Modeler 新手使用入门
  12. Windows下使用platform.pk8 和platform.x509.pem生成jks签名文件
  13. IDEA 2017破解 license server激活
  14. 【SSL证书】如何使用 FreeSSL (V2.8.0) 申请免费证书及安装
  15. 云计算第二天总结 10.29
  16. c语言 英文单词频率统计 哈希存储
  17. 10005 内联函数
  18. 复旦Moss团队:Moss参数规模约是ChatGPT的1/10;贾跃亭再获FF执行官身份;PowerToys新版发布|极客头条
  19. 布隆过滤器:一种低空间成本的判断元素是否存在的方式
  20. Contest1479 - 2018-ZZNU-ACM集训队 夏季队内积分赛 (3) Problem K 易水寒

热门文章

  1. 不接电、不用网,这只“千里眼”什么来头?
  2. mybatis 一对多映射 xml
  3. 【InSAR 笔记1】ASF网站哨兵一号批量下载
  4. fsck修复以及在lost+found找丢失的文件
  5. 写在2010年最后一天
  6. 凡是过去,皆为序章,
  7. Bert:一切过往,皆为序章
  8. CentOS 7安装Jenkins
  9. 解决EnforceNotMet: grad_op_maker_ should not be null Operator GradOpMaker has not been registered. at
  10. 阿波罗STM32F429开发板关于USART3的应用(WIFI/蓝牙/GPS)