Java实现棒球比赛(栈的利用)

2023-11-05

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

比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中 ops[i] 是你需要记录的第 i 项操作,ops 遵循下述规则:

整数 x - 表示本回合新获得分数 x
“+” - 表示本回合新获得的得分是前两次得分的总和。题目数据保证记录此操作时前面总是存在两个有效的分数。
“D” - 表示本回合新获得的得分是前一次得分的两倍。题目数据保证记录此操作时前面总是存在一个有效的分数。
“C” - 表示前一次得分无效,将其从记录中移除。题目数据保证记录此操作时前面总是存在一个有效的分数。
请你返回记录中所有得分的总和。

public int calPoints(String[] ops) {
        Stack<Integer> stack = new Stack();
        int op1;//此处是下次入栈前的栈顶和栈次顶的两元素
        int op2;
        for(String s : ops){
            switch(s){
                case "+":
                    op2=stack.pop();
                    op1=stack.pop();
                    stack.push(op1);
                    stack.push(op2);li
                    stack.push(op1+op2);
                break;
                case "D":
                    op2=stack.pop();
                    stack.push(op2);
                    stack.push(op2 * 2);
                break;
                case "C":
                    op2=stack.pop();
                break;
                default:
                    stack.push(Integer.valueOf(s));//记得转化为整形
                break;
            }
        }
        int sum = 0;
        while(!stack.isEmpty()){ // 出栈然后一次次相加起来,直到栈为空;
            sum =sum + stack.pop();
        }
        return sum;
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java实现棒球比赛(栈的利用) 的相关文章

  • SWIG 类型映射 uint8_t* 从 C/C++ 到 java.nio.ByteBuffer

    我正在尝试将输入和输出缓冲区从 C 传递给 java 类 出于效率原因 我需要使用 ByteBuffer 这两个缓冲区都是在 C 部分中分配的 我需要将它们传递给一个 java 函数 该函数将使用输入缓冲区进行一些计算并将结果写入输出缓冲区
  • 为什么在使用 repaint() 而不是使用 getParent().repaint() 时会出现此 Swing 错误?

    这个问题是基于我不久前在一个简单的 Swing 骰子程序中遇到的问题 我发布的原始问题是here https stackoverflow com questions 22306637 mystery concurrency componen
  • 在游戏框架中编写功能测试的正确方法

    在为基于 play1 2 4 的 web 应用程序编写功能测试时 我对如何正确编码感到有点困惑 困惑在于所涉及的事务边界 我在某处读到每个测试都有自己的事务 在我的应用程序中 用户可以登录并向购物车添加一些商品 然后他可以提供一个地址 以便
  • 如何在 Android 中恢复我的音频?

    我必须实现用于创建具有暂停和恢复状态的音频的应用程序 当我的应用程序作为启动时音频启动 当我按下模拟器上的后退按钮时 音频音乐处于暂停状态 但是当我的活动回来时从停止状态到前台我的音频音乐未恢复 这是我的代码 public class Au
  • Java - 了解 PrintWriter 和刷新的需要

    好吧 首先我对所有代码表示歉意 但我觉得代码太多总比代码不够好 我正在制作一个简单的聊天客户端和印刷机 尤其是我正在努力解决的问题 使用现在的代码 它将与服务器类交互 并且完美地打印我想要打印的内容 但是 当我删除 writer flush
  • 从 Java 启动外部进程:stdout 和 stderr

    我正在使用标准从 java 启动一个外部进程java lang Process 我试图弄清楚该过程的输出是什么 但是采用结合了两者的格式stdout and stderr 目前 我有Process getInputStream它提供了访问s
  • 使用 Thymeleaf 时我们应该删除 HTML 属性吗?

    我正在研究 Thymeleaf 发现几乎所有示例中都有 Thymeleaf 的标签值以及标准 HTML 值 例如 这些
  • 从另一个类添加 Swing 组件

    我正在学习java 我正在尝试从另一个类向我的框架添加一个菜单栏 练习将代码划分为多个类以更好地组织程序 这是我的代码示例 public class MainApp public static void main String args C
  • Android 防火墙与 VpnService

    我正在尝试使用 BS 项目的 VpnService 为 Android 实现一个简单的防火墙 我选择 VpnService 因为它将在非 root 设备上运行 它将记录连接并让您过滤连接 基于IP 有一个应用程序可以做到这一点 因此这是可能
  • 当用户使用相同的凭据登录两次时如何使用户会话无效

    我正在使用带有 Richfaces 和 Facelets 的 JSF 1 2 我有一个应用程序 其中包含许多会话范围的 Bean 和一些应用程序 Bean 假设用户使用 Firefox 登录 创建一个会话 ID A 然后他打开 Chrome
  • 酷还是傻? Catch(异常[NamingException, CreateException] e)

    我正在编写一些代码 我注意到异常处理中的一种模式让我思考 try do stuff throws JMS Create and NamingException catch NamingException e log1 e rollback
  • 添加和完成 PHP 源代码文档的工具 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有几个已完成的较旧的 PHP 项目 其中有很多内容 我想以 javadoc phpDocumentor
  • 更改 Spring Web 应用程序的默认会话超时

    我必须测试一个由 spring 和 jsp 编写的 Web 应用程序 应用程序的默认会话超时为 30 分钟 我想减少会话超时 为此 我改变了web xml文件输入tomcatInstallationLocation conf 但这不起作用
  • 未从线程接收位置数据

    我尝试使用计时器经常发送包含用户位置的短信 最初 我遇到了空指针异常 这是由于我犯了一个简单的错误 一旦解决了这个问题 一切似乎都运行良好 但是 它永远不会获取我的位置 因此 不断发送的文本显示 无法接收位置 我想问的是为什么它无法获取我的
  • 使用 Lint 和 SonarQube 分析 Android 项目

    我真的 溢出 了试图让这些东西一起工作 我按照这里的指示进行操作 http docs sonarqube org display PLUG Android Lint Plugin http docs sonarqube org displa
  • C3P0:生产中未返回的连接超时?

    参数unreturnedConnectionTimeout给定时间段后未返回的连接超时 我正在尝试决定是否应该在我的制作中使用它persistence xml 使用它的一大优点是连接池将能够从泄漏的连接中恢复 一个很大的缺点是泄漏的连接将很
  • System.out.println("嗨"+6+10);打印Hi610?

    为什么要这样做 太令人困惑了 运算符优先级和结合性 两点 操作员 如果一个或两个参数都是字符串 则进行字符串连接 操作员 从左到右工作 所以在你的例子中 Hi 6 is Hi6 and Hi6 10 is Hi610 编辑 正如您在对另一个
  • 用什么? MVC、MVP 或 MVVM 还是……?

    我将启动一个 Java 项目来开发桌面应用程序 使用什么作为表示层模式 MVC MVP MVVM 或 如果可能的话 举一些可行的小例子 Actually the ultimate post you re looking for is thi
  • 丰富:数据表行跨度问题

    我需要创建一个 rich dataTable 甚至扩展 具有以下功能 我有一个公司类 其中包含产品对象的集合 我想展示下表 我仍然没有弄清楚如何使用子表执行此操作 在所有示例中 我发现子表具有与主表完全相同的列 据推测 我需要在前两列中使用
  • 是什么让热部署成为“难题”?

    在工作中 我们经常遇到这样的问题 永久代内存不足 http www jroller com agileanswers entry preventing java s java lang例外 团队负责人认为这是 JVM 中的一个错误 与代码的

随机推荐

  • typora的使用

    typora的使用 1 换行的实现 在一行的结尾加上两个空格实现换行 在两行之间加回车实现换行 2 标题 多少个 就多少级标题 一共六级标题 记得输完 要加空格 1 2 3 4 5 6 3 分割线 就出现分割线 要回车 4 强调 斜体 字体
  • numpy 寻找两个二维数组中重复的行(附代码)

    numpy 两个 N M 维度的 二维数组a 和 b 以行为单位 找到 a 和 b 中都存在的行 相同的行不一定出现在同一行的位置 通过遍历每一行寻找 import numpy as np 创建两个示例数组 a sorted np arra
  • 玩转触发器之Jenkins Generic Webhook使用技巧

    1 预备知识 目标 学习HTTP基础知识 掌握如何使用Postman和Curl调用接口的方法 1 1 Web HTTP基础知识 HTTP请求是什么 HTTP超文本传输协议 是确保服务器 Server 和客户端 Client 之间的正确通信
  • php同时作为server端和client端(soapclient)的超时时间设置小结

    http blog sina com cn s blog 475429950101bt7x html 场景 A通过HTTP请求B 同时B通过soap请求C webservice 然后B得到C的返回内容后 再响应回A client A gt
  • Linux系统编程——线程

    Linux系统编程 线程 1 线程概述 与进程的区别及线程的优势 2 线程创建等待退出 3 线程共享内存空间的代码验证 4 线程同步之互斥量加锁解锁 5 互斥锁限制共享资源的访问 6 什么情况造成死锁 7 线程条件控制实现线程的同步 1 线
  • 【基于Arduino的蓝牙控制小车】3D+电路图+控制代码详解

    更好的阅读体验 目录 1 环境搭建 1 1 电路模拟环境 3D建模环境 1 2蓝牙小车控制代码环境 2 Arduino串口通信 2 1 Arduino串口 2 2 系统函数 2 3 串口函数 2 3 1 Serial begin 2 3 2
  • STM32 websocket,TCP和UDP的传输速率

    网络上经常有人提到websocket TCP和UDP 的差别 说的大都是协议之间的差别 没有提及它们的传输能力 为了设计高吞吐量的物联网微服务器 最近对websocket TCP UDP的传输能力做了测试 使用STM32F746 处理器 操
  • 建立自己的机械臂–编程

    现在 手臂已经组装好了 是时候将其提升到一个新的水平了 现在是释放野兽并完全控制整个机器人手臂的时候了 在这篇文章的结尾 您应该对如何对该机械臂进行编程以完成您想要的事情有一个想法 要了解我如何到达这里 请访问我以前的文章 该文章描述了组装
  • Library\PackageCache\com.unity Error (are you missing a using directive or an assembly reference?)

    Library PackageCache com unity cinemachine 2 2 7 Runtime Timeline CinemachineTrack cs 16 6 error CS0246 The type or name
  • PAT考试 一日游记

    今天下午去考了PAT 真的很懵逼 首先 编译器炸了 弄了一个小时多的编译器 早知道就先不点击开始了 然后就是遇到了头文件CB不能调试 主要是用了unorder map unorder set 习惯性写的头文件 开局先默写头文件 然后就这样
  • MFC菜单的使用

    1 创建弹出菜单 1 利用向导 创建一个基于单文档的应用程序 2 在资源视图中选中 menu 鼠标右键插入一新菜单IDR POPMENU 3 在IDR POPMENU菜单中添加 弹出菜单 选项 在 弹出菜单 下添加菜单命令 复制 粘贴 查找
  • getResourceAsStream方法及缓存问题

    缓存问题 getResourceAsStream会先到缓存中读取文件 若缓存中没有 才会到真正的路径下去读取文件 所以用getResourceAsStream方法获取配置文件时 获取的不是最新配置 可以使用以下方法代替 该方法直接读文件 所
  • 算法(63)-二叉树的递归-搜索二叉树-满二叉树-平衡二叉树-

    目录 1 二叉树 2 搜索二叉树 3 满二叉树 4 平衡二叉树 1 二叉树 先 中 后序遍历 先序 中 左 右 1 2 4 5 3 6 7 中序 左 中 右 4 2 5 1 6 3 7 后序 左 右 中 4 5 2 6 7 3 1 void
  • 【推荐算法】推荐系统的评估

    一 离线评估的主要方法 1 Holdout检验 Holdout检验是基础的离线评估方法 它将原始的样本集合随机划分为训练集和验证集两部分 比如70 训练集 30 测试集 但现在很多机器学习框架 深度学习框架中都增加了验证集 即将整个数据集分
  • python创建sqlite3 unicode error_在python2.7.3中使用sqlite3的Unicode

    我试图插入到一个表中 但似乎我打开的文件中有非ascii字符 这是我得到的错误 sqlite3 ProgrammingError You must not use 8 bit bytestrings unless you use a tex
  • IDEA捕获异常快捷键(try/catch……)

    捕获异常 这时候快捷键的时候就可以事半功倍 ctrl alt t
  • 每日10行代码125: 用python计算快乐8一等奖的中奖概率

    先简单介绍下快乐8一等奖的规则 投注人从80个数中选10个 开奖时会从80个数中开出20个 如果选择的10个数均在开出的20个数中 那么就是中一等奖 也叫选十中十 那么中一等奖的概率是多少呢 这其实是数学中的概率问题 解题方法 选求所有可能
  • Python算法:动态规划

    转载自伯乐在线 本节主要结合一些经典的动规问题介绍动态规划的备忘录法和迭代法这两种实现方式 并对这两种方式进行对比 大家都知道 动态规划算法一般都有下面两种实现方式 前者我称为递归版本 后者称为迭代版本 根据前面的知识可知 这两个版本是可以
  • moviepy基础_1:使用moviepy提取视频的音频及合成

    任务 提取 a mp4 的音频部分 然后把提取到的音频添加到 b mp4 里 程序实现 from moviepy editor import 读取2个视频文件 videoclip 1 VideoFileClip a mp4 videocli
  • Java实现棒球比赛(栈的利用)

    你现在是一场采特殊赛制棒球比赛的记录员 这场比赛由若干回合组成 过去几回合的得分可能会影响以后几回合的得分 比赛开始时 记录是空白的 你会得到一个记录操作的字符串列表 ops 其中 ops i 是你需要记录的第 i 项操作 ops 遵循下述