【leetcode】682.棒球比赛

54 阅读1分钟

leetcode-682.png

这一题,读懂题目就好了,没啥弯弯绕绕
判断是否是数字,使用 isNaN,然后细分情况即可,要区分使用pop的情况

var calPoints = function (operations) {
    let score = []
    for (let i = 0; i < operations.length; ++i) {
        if (!isNaN(operations[i])) {
            score.push(Number(operations[i]))
        } else {
            if (operations[i] === 'C') {
                score.pop()
            } else if (operations[i] === 'D') {
                let last = score[score.length - 1]
                score.push(last * 2)
            } else if (operations[i] === '+') {
                let last = score[score.length - 1]
                let secondLast = score[score.length - 2]
                score.push(last + secondLast)
            }
        }
    }
    let sum = 0
    for (let num of score) {
        sum += num
    }
    return sum
};