682. Baseball Game - Easy

前往題目

想法

  • Stack

思路

  1. 疊代所有操作
  2. 每次根據其操作來更新stack(遇到+直接退出前兩個加起來再重新入stack)
  3. 彈出所有數字算出總和

Code

class Solution {
    public int calPoints(String[] operations) {

        Stack<Integer> s = new Stack();

        for (String op : operations) {

            if (op.equals("C")) {
                s.pop();
            } else if (op.equals("D")) {
                s.push(2 * s.peek());
            } else if (op.equals("+") && s.size() >= 2) {
                int second = s.pop();
                int first = s.pop();
                int preTwoSum = first + second;

                s.push(first);
                s.push(second);
                s.push(preTwoSum);
            } else { // Encounter a number
                s.push(Integer.parseInt(op));
            }
        }

        int res = 0;

        while (!s.isEmpty()) {
            res += s.pop();
        }

        return res;

    }
}

682. Baseball Game - Easy
https://f88083.github.io/2024/08/01/682-Baseball-Game/
作者
Simon Lai
發布於
2024年8月1日
許可協議