lc-go/solutions/1/q150/solution.go
2026-01-09 18:00:28 +09:00

29 lines
555 B
Go

package q150
import "strconv"
func evalRPN(tokens []string) int {
stack := make([]int, 0, len(tokens)/2)
for _, s := range tokens {
height := len(stack)
switch s {
case "+":
stack[height-2] += stack[height-1]
case "-":
stack[height-2] -= stack[height-1]
case "*":
stack[height-2] *= stack[height-1]
case "/":
stack[height-2] /= stack[height-1]
default:
num, _ := strconv.ParseInt(s, 10, strconv.IntSize)
stack = append(stack, int(num))
continue
}
stack = stack[:height-1]
}
return stack[0]
}
var _ = evalRPN