当前位置: 首页 > news >正文

【华为OD机试】投篮大赛 100分

语雀原文链接

文章目录

  • 1、题目
  • 2、解法

1、题目

  • 2025年A卷
  • 题目名称:投篮大赛
  • 知识点:字符串、栈操作、逻辑处理
  • 时间限制:1秒
  • 空间限制:256MB
  • 限定语言:不限
  • 题目描述

你作为一场特殊赛制投篮大赛的记录员,需根据操作字符串列表 ops 记录得分。规则如下:

整数 x:当前回合得分为 x,直接记录。

+:当前回合得分为前两回合有效得分之和。

D:当前回合得分为前一回合有效得分的两倍。

C:当前回合无得分,且前一回合得分无效(需移除)。

最终返回所有有效得分的总和。若操作过程中出现异常(如操作符无法执行),返回 -1。

  • 输入输出格式

输入:字符串数组 ops,元素为整数或操作符(C、D、+)。

输出:整型数字,总得分或 -1(异常时)。

约束条件:

1 <= ops.length <= 1000

整数范围:[-310^4, 310^4]

需处理以下异常:

  • 操作时,前两有效得分不存在。

C/D 操作时,前一有效得分不存在。

  • 示例

示例1

输入:5 2 C D +

输出:30

解释:

5 → 记录 [5]

2 → 记录 [5, 2]

C → 移除 2,记录 [5]

D → 记录 5*2=10 → [5, 10]

  • → 记录 5+10=15 → [5, 10, 15]

总和:5+10+15=30

示例2

输入:+

输出:-1

解释:+ 操作时栈中无足够元素,触发异常。

2、解法

  • 思路:处理C和D是集合长度需要大于0,处理+的时候集合长度需要大于1,不满足则返回-1
  • 代码
import java.util.*;public class Test {public static int calPoints(String[] ops) {List<Integer> points = new ArrayList<>();for (String s : ops) {int size = points.size();switch (s) {case "+":if (size < 2) {return -1;}points.add(points.get(size - 1) + points.get(size - 2));break;case "D":if (points.isEmpty()) {return -1;}points.add(points.get(size - 1) * 2);break;case "C":if (points.isEmpty()) {return -1;}points.remove(size - 1);break;default:int num;try {num = Integer.parseInt(s);} catch (Exception e) {return -1;}points.add(num);break;}}int sum = 0;for (Integer a : points) {sum += a;}return sum;}public static void main(String[] args) {System.out.println(calPoints(new String[]{"5", "2", "C", "D", "+"})); // 30System.out.println(calPoints(new String[]{"5", "-2", "4", "C", "D", "9", "+", "+"})); // 27System.out.println(calPoints(new String[]{"5", "C", "D"})); // -1System.out.println(calPoints(new String[]{"5", "6", "C", "+"})); // -1System.out.println(calPoints(new String[]{"+"})); // -1}
}
http://www.dtcms.com/a/487257.html

相关文章:

  • 厦门网站建设人才浙江省住房和城乡建设厅成绩查询
  • 产品展示型网站有哪些公司网站注意事项
  • python物理模拟:描述波动、振动和旋转系统
  • osg项目运行时关于gl.h错误的问题及解决方法
  • 购物网站首页模板下载做模板下载网站挣钱吗
  • 免费源码网站好用的免费网站源码网站有哪些
  • 小朋友做安全教育的网站开发一款app的公司
  • LeetCode 面试经典 150_区间_用最少数量的箭引爆气球(51_452_C++_中等)(求交集)(sort() 以第二个进行排序)
  • 老干局网站建设方案手机网站图片自适应
  • 云南省建设厅网站舉報软件开发赚钱吗
  • 增强现实:制造业的变革力量
  • 网站虚拟主机建设找人做个网站多少钱
  • 树突状细胞(DC)和巨噬细胞 gvl
  • 【系统分析师】写作框架:信息系统开发方法论
  • 如何仿做网站万网老板是谁
  • SpringCloud系列(52)--SpringCloud Sleuth简介
  • 2025年10月15日第一批一战复旦
  • Xshell效率实战:SSH管理秘籍
  • (一) Dotnet使用MCP的Csharp SDK
  • 网银网站模板网站开发实训报告总结
  • 男人互做网站温州网站建设成功案例
  • 隐私计算技术全景:从联邦学习到可信执行环境的实战指南—数据安全——隐私计算 联邦学习 多方安全计算 可信执行环境 差分隐私
  • 如何做交易网站微信营销技巧
  • 实验室软件如何提升实验室管理水平
  • SQL Server 报错 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 ‘ORDER_BTN‘ 中的标识列插入显式值
  • 在百度上怎么建网站怎么设置网站字体
  • Linux MySQL 多实例部署与配置实践
  • 从0到1:打造专业级AI教学助手的完整开发实录
  • 练习python题目小记
  • 有没有做问卷还能赚钱的网站一线视频免费观看