Go•baseball-game/solution.go
package main
import "strconv"
func calPoints(operations []string) int {
scores := []int{}
for _, operation := range operations {
switch operation {
case "+":
scores = append(scores, scores[len(scores)-1]+scores[len(scores)-2])
case "D":
scores = append(scores, scores[len(scores)-1]*2)
case "C":
scores = scores[:len(scores)-1]
default:
score, _ := strconv.Atoi(operation)
scores = append(scores, score)
}
}
total := 0
for _, score := range scores {
total += score
}
return total
}
Python•baseball-game/solution.py
class Solution:
def calPoints(self, operations: list[str]) -> int:
scores: list[int] = []
for operation in operations:
if operation == class="syntax-string">"+": scores.append(scores[-class="syntax-number">1] + scores[-class="syntax-number">2])
elif operation == class="syntax-string">"D": scores.append(scores[-class="syntax-number">1] * class="syntax-number">2)
elif operation == class="syntax-string">"C": scores.pop()
else: scores.append(int(operation))
return sum(scores)
TypeScript•baseball-game/solution.ts
function calPoints(operations: string[]): number {
const scores: number[] = [];
for (const operation of operations) {
if (operation === class="syntax-string">"+") scores.push(scores.at(-class="syntax-number">1)! + scores.at(-class="syntax-number">2)!);
else if (operation === class="syntax-string">"D") scores.push(scores.at(-class="syntax-number">1)! * class="syntax-number">2);
else if (operation === class="syntax-string">"C") scores.pop();
else scores.push(Number(operation));
}
return scores.reduce((sum, score) => sum + score, class="syntax-number">0);
}