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