代码随想录算法训练营 | 博客打卡
题目链接:leetcode 150. 逆波兰表达式求值
注:仅为个人笔记,难以细致且通俗。
题很简单,图没什么用,画着玩。
把数字和字符从字符串中挑出来也是一个需要注意的点。
func evalRPN(tokens []string) int {
stack := make([]int, 0)
for _, token := range tokens {
num, err := strconv.Atoi(token)
if err == nil { // 是数字
stack = append(stack, num)
} else { // 是字符
num1, num2 := stack[len(stack)-2], stack[len(stack)-1]
stack = stack[:len(stack)-2]
switch token {
case "+":
stack = append(stack, num1+num2)
case "-":
stack = append(stack, num1-num2)
case "*":
stack = append(stack, num1*num2)
case "/":
stack = append(stack, num1/num2)
}
}
}
return stack[0]
}