luoheng
10/11/2019 - 6:54 AM

callPoints


import "strconv"

func calPoints(ops []string) int {
    scores := make([]int, 0, len(ops))
    for _, str := range ops {
        if str == "C" {
            if len(scores) >= 1 {
                scores = scores[:len(scores)-1]
            }
        } else if str == "D" {
            if len(scores) >= 1 {
                scores = append(scores, 2 * scores[len(scores)-1])
            }
        } else if str == "+" {
            sum := 0
            if len(scores) >= 1 {
                sum += scores[len(scores)-1]
            }
            if len(scores) >= 2 {
                sum += scores[len(scores)-2]
            }
            scores = append(scores, sum)
        } else {
            score, _ := strconv.Atoi(str)
            scores = append(scores, score)
        }
    }
    sum := 0
    for _, s := range scores {
        sum += s
    }
    return sum
}