美文网首页Leetcode题解-PHP版
Leetcode PHP题解--D37 682. Basebal

Leetcode PHP题解--D37 682. Basebal

作者: skys215 | 来源:发表于2019-04-20 08:11 被阅读0次

    682. Baseball Game

    题目链接

    682. Baseball Game

    题目分析

    给定一个字符串数组,每一个字符串有以下形式:

    • 数字。直接计算得分。
    • +。代表本轮分数为上一轮和上上一轮分数之和。
    • D。代表本轮分数为上一轮分数的两倍。
    • C。代表上一轮分数无效。

    返回最终得分。

    思路

    这题没什么好说的了。用switch...case区分各种情况,进行相应处理即可。

    最终代码

    <?php
    class Solution {
        function calPoints($ops) {
            $points = [];
            foreach($ops as $op){
                $max = count($points);
                switch($op){
                    case '+':
                        $p = 0;
                        if(isset($points[$max-1])){
                            $p += $points[$max-1];
                        }
                        if(isset($points[$max-2])){
                            $p += $points[$max-2];
                        }
                        $points[] = $p;
                        break;
                    case 'D':
                        $points[] = isset($points[$max-1])?$points[$max-1]*2:0;
                        break;
                    case 'C':
                        array_pop($points);
                        break;
                    default:
                        $points[] = (int)$op;
                        break;
                }
            }
            return array_sum($points);
        }
    }
    

    若觉得本文章对你有用,欢迎用爱发电资助。

    相关文章

      网友评论

        本文标题:Leetcode PHP题解--D37 682. Basebal

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