棒球比赛

作者: 习惯了_就好 | 来源:发表于2019-06-25 10:16 被阅读0次

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

  1. "+"(一轮的得分):表示本轮获得的得分是前两轮有效 回合得分的总和。
  2. "D"(一轮的得分):表示本轮获得的得分是前一轮有效 回合得分的两倍。
  3. "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之间。

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

class Solution {
    public int calPoints(String[] ops) {
        int length = ops.length;
        int[] nums = new int[length];
        int index = 0;//存放数字的数组的指针
        int sum = 0;
        for(int i = 0; i < length; i++){
            if("C".equals(ops[i])){
                if(index >= 1){
                    int temp = nums[index -1];
                    index--;
                    sum -= temp;
                }
            } else if("D".equals(ops[i])){
                if(index >= 1){
                    int temp = nums[index -1] * 2;
                    nums[index] = temp;
                    index++;
                    sum += temp;
                }
            } else if("+".equals(ops[i])){
                if(index >= 2){
                    int temp = nums[index -1] + nums[index -2];
                    nums[index] = temp;
                    index++;
                    sum += temp;
                }
            } else {
                int value = Integer.valueOf(ops[i]);
                sum += value;
                nums[index] = value;
                index++;
            }
        }
        return sum;
    }
}

相关文章

  • 棒球比赛

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

  • 棒球比赛

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

  • 棒球比赛

    昨天我们进行了一场棒球比赛,其实这比赛也不是真正的棒球比赛,连棒都没有。 我们打的是几个学过棒球的同学。一开局,我...

  • 游戏规则

    如果你要去参加一场棒球比赛,你得先了解棒球比赛的规则,棒球场有特定的形状和大小,在比赛时,每队只有9名队员上场比赛...

  • 682. 棒球比赛

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

  • 682. 棒球比赛

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

  • 682. 棒球比赛

    【题目描述】你现在是棒球比赛记录员。给定一个字符串列表,每个字符串可以是以下四种类型之一:1.整数(一轮的得分):...

  • 682. 棒球比赛

  • 一切体验无法被替代

    “我喜欢棒球。而且喜欢亲自去棒球场,观看眼前展开的现场比赛。我会戴着棒球帽,带上棒球手套,预备着若是坐内野区就接界...

  • 三年级新鲜事——棒球比赛

    三(3)班冯冠杰 周六下午我代表我们学校去侨乡棒球场参加棒球比赛。大家实力相当,比赛非常激烈。 我...

网友评论

    本文标题:棒球比赛

    本文链接:https://www.haomeiwen.com/subject/gpozqctx.html