1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| package main
import "strconv"
func evalRPN(tokens []string) int { stack := []int{} for _, token := range tokens { switch token { case "+", "-", "*", "/": b := stack[len(stack)-1] stack = stack[:len(stack)-1] a := stack[len(stack)-1] stack = stack[:len(stack)-1] var res int switch token { case "+": res = a + b case "-": res = a - b case "*": res = a * b case "/": res = a / b } stack = append(stack, res) default: num, _ := strconv.Atoi(token) stack = append(stack, num) } } return stack[0] }
|