前言
1、采用vector实现。很快有了思路,其中字符串转换为整型的处理,耗费了较长时间,还是参考网上的方法。时间复杂度为O(n)
2、待优化。

题目
你现在是棒球比赛记录员。
给定一个字符串列表,每个字符串可以是以下四种类型之一:
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之间。

实现方法
一、采用vector实现

class Solution {
public:int calPoints(vector<string>& ops) {vector<int> result;int sum = 0;for (int i = 0; i < ops.size(); i++) {if (ops[i] != "+" && ops[i] != "C" && ops[i] != "D") {result.push_back(str2int(ops[i]));}else if (ops[i] == "C") {result.pop_back();}else if (ops[i] == "D") {result.push_back(result.back()*2);}else if (ops[i] == "+") {result.push_back(result[result.size() - 2] + result.back());}}for (int i = 0; i < result.size(); i++) {sum += result[i];}return sum;}//字符串转换为整型int str2int(string s) {stringstream ss;int n;ss << s;ss >> n;return n;}
};

C++Leetcode682:棒球比赛相关推荐

  1. [Swift]LeetCode682. 棒球比赛 | Baseball Game

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  2. LeetCode简单题之棒球比赛

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

  3. LeetCode:棒球比赛【682】

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

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

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

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

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

  6. 数据结构-青蛙杯棒球比赛

    [题目来自灰灰考研] (青蛙题精选):.青蛙(frog)杯第一届棒球比赛开赛啦. 你现在是一名记分员,输入一个字符串数组(比赛记录情况),按如下规则计分: 1. 如果该字符串是数字:代表当轮比赛的得分 ...

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

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

  8. LeetCode——682. 棒球比赛

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

  9. 【leetcode】棒球比赛 c++

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

最新文章

  1. 三关节机械臂控制需求说明压缩文件中的相关文档说明
  2. 【Android UI设计与开发】第06期:底部菜单栏(一)使用TabActivity实现底部菜单栏
  3. 【Web安全】漏洞之王-Sql注入原理与危害解析
  4. 成功计算出文本类单词的概率
  5. 基于Ocelot的gRpcHttp网关
  6. idea报错 电脑死机蓝屏
  7. Vim/GVim格式化xml文件
  8. Java Web学习总结(10)学习总结-EL表达式
  9. 北京玉渊潭开启春节模式 五大版块吸引游客
  10. [刷题]算法竞赛入门经典(第2版) 6-7/UVa804 - Petri Net Simulation
  11. 2 imwrite中文路径_如何为FreePBX/Asterisk配置中文语音支持
  12. TypeScript:对象
  13. android模拟器上https抓包
  14. 飞桨EasyDL闪退解决方法
  15. JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
  16. dedecms自定义表单 发送邮件
  17. 计算机图形学:B样条画枫叶
  18. 地球投影的分类和实例
  19. 百度商业系统大规模微服务分布式监控实践
  20. QML自定义控件Button

热门文章

  1. Office办公软件快捷键大全
  2. 咖说 | 为什么马斯克、SEC议员等众多大V都换了“激光眼”头像?
  3. Vue动画工具及特效
  4. 谁是移动应用开发的最佳智能手机系统?
  5. 无软驱情况下服务器RAID的安装方法
  6. bootstrap清除浮动的方法
  7. f5虚拟服务器,f5负载均衡虚拟ip
  8. 一篇文章搞定Prometheus普罗米修斯监控系统的部署
  9. 配置多交换机VLAN划分
  10. 优惠券抢券系统设计_网上优惠券和交易的最佳网站