首页 > 其他分享 >棒球比赛

棒球比赛

时间:2023-07-17 20:36:54浏览次数:40  
标签:分数 得分 arr 比赛 记录 回合 operations 棒球

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

比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 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

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/baseball-game
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

双指针,一个遍历ops表,一个添加分数表

class Solution {
    public int calPoints(String[] operations) {
        int[] arr = new int[operations.length];
        int j = 0;
        for(int i = 0;i < operations.length ; i++){
            if(operations[i].equals("C") ){
                //上一次分数无效
                arr[j-1] = 0;
                j--;
            }else if(operations[i].equals("D")){
                //本回合分数=上次回合分数*2
                arr[j] = arr[j-1]*2;
                j++;
            }else if(operations[i].equals("+")){
                //本回合分数=上回合分数+上上回合分数
                arr[j] = arr[j-1] + arr[j-2];
                j++;
            }else{
                //不是数字就添加分数
                arr[j] = Integer.valueOf(operations[i]);
                j++;
            }
        }
        //进行统计分数
        int result = 0;
        for(int i = 0;i<arr.length;i++){
            if(arr[i]!=0){
                result+=arr[i];
            }
        }
        return result;
    }
}

标签:分数,得分,arr,比赛,记录,回合,operations,棒球
From: https://www.cnblogs.com/xiaochaofang/p/17561110.html

相关文章

  • 比赛日志(模拟赛)
    2023.7.15ABC310主要是翻译的问题,读题读了很久。A了C题就结束了。2023.7.15CF885Div.2还是翻译的问题,读题读了很久。C题有点难,这场比赛不好。题面废话贼几把多。赛后解决了翻译问题。......
  • 【动态规划】牛客2023年儿童节比赛 G
    题目链接:https://ac.nowcoder.com/acm/contest/58604/G来源:牛客网设\(f[i]\)表示以\(s[i]\)为结尾的合法序列个数如果\(s[i]\ne1\),那么我们可以在从\(f[i-1]\)到\(f[1]\)所包含的序列后面添加\(s[i]\)构成答案,也可以单独以\(s[i]\)为新的合法序列(也就是后面......
  • Codeforces Round 766 (Div. 2) 比赛报告
    0比赛经过比赛还没开始的时候就感觉状态不太好。果然。总归到底都是一个心态问题。A题经过看A题,结果半天看不懂,一开始没有注意到一定要在黑格子上操作。扔到DeepL上翻译了一下,再手玩一下样例就做出来了,速度有点慢。CF怎么这么喜欢出分讨题啊。看题目不能太急,要一个一......
  • 第二届猿人学web比赛第一题浅记
    上个月的猿人学逆向比赛终于参加了一次,本着嫖一件文化衫的目的与做出第一题的目标,开始了比赛。过程是艰苦的,结果还是满意的,文化衫嫖到了,现在记录一下第一题的过程。(基于补环境)链接地址:https://match2023.yuanrenxue.cn/topic/11、网站分析:照常F12看发包的请求:对比多个请求......
  • 一场局气的比赛
    这段期间,受疫情的影响,国内很多赛事都被推迟了,甚至一些国外举办的赛事,中国队都受到了影响,例如中国女篮的奥运会资格赛,就从广东的主场,被迫迁到了塞尔维亚,而中国女子手球队就更惨了,直接退出了奥运资格赛。值得庆幸的是,泰国对中国暂时没任何限制,所以亚冠联赛第二轮,北京中赫国安,能到泰国......
  • 欧洲杯第一周的比赛闲聊
    欧洲杯开赛的第一周,精彩纷呈的同时,有点五味杂陈,有竞技层面的,有人性的考验,好戏才刚刚开始。对球员和球迷来说这届的欧洲杯来之不易,来到现场的球迷,更是不容易,从某种层面,参赛的球队、球员、球迷都是赢家,虽然某些球场,按照防疫要求,不能装满球迷,但无论是现场,还是电视机前,所有的球迷,都在为......
  • 欧洲杯第三周的比赛闲聊
    本周小组赛决出了胜负,几家欢喜几家愁,由于赛制的特殊,小组第三都是有机会出线的,因此竞争起来,其实不是特激烈,但是有几支球队,还是靠着净胜球,惊险晋级。意大利的男模队,延续了良好状态,即使铁定出线,还是极具体育道德地1:0战胜了欧洲红龙,这届大赛的意大利吊足了球迷的胃口,难道曾经的世界冠......
  • 行业动态|中华人民共和国第二届职业技能比赛四川选拔赛人工智能训练赛项
    开幕6月9日,由四川省人社厅主办,四川省人工智能学会、泸州职业技术学院共同承办的“中华人民共和国第二届职业技能大赛四川选拔赛人工智能训练”赛项在泸州职业技术学院正式开幕。学会副理事长兼秘书长任志宇在讲话中指出,当前人工智能技术飞速发展,人工智能应用技术领域的人才需求不断......
  • 2383.赢得比赛需要的最少训练时长 (Easy)
    问题描述2383.赢得比赛需要的最少训练时长(Easy)你正在参加一场比赛,给你两个正整数initialEnergy和initialExperience分别表示你的初始精力和初始经验。另给你两个下标从0开始的整数数组energy和experience,长度均为n。你将会依次对上n个对手。第i个对手......
  • 开发者 vs ChatGPT:开发者如何始终赢得比赛?
    【摘要】在不断发展的技术领域,开发人员在塑造我们生活的数字世界方面发挥着至关重要的作用。他们是架构师、问题解决者和创新软件解决方案背后的创造性思维。虽然像ChatGPT这样的人工智能模型在自然语言处理方面取得了重大进步,但开发人员仍然是软件开发成功的关键。本文探讨了开......