2024/07/29 每日一题

LeetCode 682 棒球比赛

方法1:栈模拟

class Solution:
    def calPoints(self, operations: List[str]) -> int:
        nums = list(); ans = 0
        for op in operations:
            if op == "+":
                nums.append(nums[-2] + nums[-1])
            elif op == "D":
                nums.append(2 * nums[-1])
            elif op == "C":
                ans -= nums.pop()
                continue
            else:
                nums.append(int(op))
            ans += nums[-1]
        return ans
  • ArrayList 删除元素 remove
class Solution {
    public int calPoints(String[] operations) {
        List<Integer> nums = new ArrayList<Integer>();
        int n = 0, ans = 0;
        for (String op : operations) {
            switch (op.charAt(0)) {
                case '+':
                    nums.add(nums.get(n - 2) + nums.get(n - 1));
                    break;
                case 'D':
                    nums.add(nums.get(n - 1) * 2);
                    break;
                case 'C':
                    ans -= nums.remove(n - 1);
                    n -= 1;
                    break;
                default:
                    nums.add(Integer.parseInt(op));
                    break;
            }
            if (op.charAt(0) != 'C') {
                n += 1; ans += nums.get(n - 1);
            }
        }
        return ans;
    }
}
posted @   Koonan-Edogawa  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示