| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | package mainimport (	"strconv")func evalRPN(tokens []string) int {	length := len(tokens)	if length == 0 {		return 0	}	vals := make([]int, 0)	for i := 0; i < length; i++ {		switch tokens[i] {		case "+":			size := len(vals)			a, b := vals[size-2], vals[size-1]			vals = vals[:size-2]			vals = append(vals, a+b)		case "-":			size := len(vals)			a, b := vals[size-2], vals[size-1]			vals = vals[:size-2]			vals = append(vals, a-b)		case "*":			size := len(vals)			a, b := vals[size-2], vals[size-1]			vals = vals[:size-2]			vals = append(vals, a*b)		case "/":			size := len(vals)			a, b := vals[size-2], vals[size-1]			vals = vals[:size-2]			vals = append(vals, a/b)		default:			val, _ := strconv.Atoi(tokens[i])			vals = append(vals, val)		}	}	return vals[0]}// func main() {// 	println(evalRPN([]string{ // The answer: 22// 		"10", "6", "9", "3", "+", "-11", "*", "/", "*", "17", "+", "5", "+"}))// }
 |