AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P2601. 投篮大赛

简单通过率 39% · 提交 1,968 · 通过 775
模拟字符串

小慕正在记录一场特殊赛制的投篮比赛成绩。比赛由若干回合组成,之前回合的得分可能会影响后续回合的得分。比赛开始时,记录为空。小慕会得到一个,其中 ops[i] 是第 i 项需要记录的操作,规则如下: 1. 整数 x 表示本回合新获得分数 x 2. + 表示本回合新获得的得分是 3. D 表示本回合新获得的得分是前一次得分的两倍 4. C 表示本回合没有分数,并且 请帮小慕计算记录中所有得分的总和。

提示:带虚线的词点一下有通俗解释。

输入描述

输入为一个字符串数组

输出描述

输出为一个整形数字

示例

示例 1

输入

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

输入

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

输入

1

输出

1

示例 4

输入

+

输出

-1

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
投篮大赛操作图解(示例:5 2 C D +) 初始 [] 5 → [5] 2 → [5,2] C → [5] D → [5,10] + → [5,10,15] 规则: • 整数 x:直接加 x • '+':加前两个分数的和 • 'D':加前一个分数的两倍 • 'C':移除前一个分数 计算过程: 5 → 记录 [5] 2 → 记录 [5, 2] C → 移除 2,记录 [5] D → 加 2*5=10,记录 [5, 10] + → 加 5+10=15,记录 [5, 10, 15] 总和 = 5+10+15 = 30
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「投篮大赛」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。