golang力扣leetcode 150.逆波兰表达式求值

简介: golang力扣leetcode 150.逆波兰表达式求值

题解

逆波兰表达式是一种后缀表达式,遇到运算符就弹出两个进行运算即可,大水题

代码

package main
import "strconv"
func evalRPN(tokens []string) int {
  if len(tokens) == 0 {
    return 0
  }
  stack := make([]int, 0, len(tokens))
  for i := 0; i < len(tokens); i++ {
    val := tokens[i]
    switch val {
    case "+", "-", "*", "/":
      a2 := stack[len(stack)-1]
      stack = stack[:len(stack)-1]
      a1 := stack[len(stack)-1]
      stack = stack[:len(stack)-1]
      result := 0
      switch val {
      case "+":
        result = a1 + a2
      case "-":
        result = a1 - a2
      case "*":
        result = a1 * a2
      case "/":
        result = a1 / a2
      }
      stack = append(stack, result)
    default:
      v, _ := strconv.Atoi(val)
      stack = append(stack, v)
    }
  }
  return stack[0]
}
func main() {
}
目录
相关文章
|
13天前
|
Java
【LeetCode力扣】面试题 17.14. 最小K个数(top-k问题)
【LeetCode力扣】面试题 17.14. 最小K个数(top-k问题)
17 1
|
7天前
|
机器学习/深度学习 canal NoSQL
从C语言到C++_12(string相关OJ题)(leetcode力扣)
从C语言到C++_12(string相关OJ题)(leetcode力扣)
18 0
|
13天前
|
存储 算法
【LeetCode力扣】单调栈解决Next Greater Number(下一个更大值)问题
【LeetCode力扣】单调栈解决Next Greater Number(下一个更大值)问题
8 0
|
13天前
leetcode代码记录(逆波兰表达式求值
leetcode代码记录(逆波兰表达式求值
14 0
|
13天前
|
存储 人工智能 BI
leetcode 399 除法求值
leetcode 399 除法求值
14 1
|
13天前
|
Java
LeetCode题解-逆波兰表达式求值-Java
逆波兰表达式求值-Java
17 0
|
13天前
|
Go 容器 SQL
【Golang Leetcode】总目录(Day1~100)
【Golang Leetcode】总目录(Day1~100)
477 1
【Golang Leetcode】总目录(Day1~100)
|
13天前
|
Go
golang力扣leetcode 494.目标和
golang力扣leetcode 494.目标和
32 0
|
13天前
|
Go
golang力扣leetcode 剑指Offer II 114. 外星文字典
golang力扣leetcode 剑指Offer II 114. 外星文字典
24 0
|
1天前
|
算法
"刷题记录:哈希表+双指针 | leetcode-2465. 不同的平均值数目 "
该文段是一篇关于编程题目的解答,主要讨论如何找到数组中所有不同平均值的个数。作者首先使用排序和哈希集来解决,将数组转为列表排序后,通过双指针计算平均值并存入哈希集以去重。然后,作者发现可以优化方案,通过双指针在排序后的数组中直接计算两数之和,用哈希集记录不重复的和,从而避免实际计算平均值,提高了算法效率。最终代码展示了这两种方法。
8 0

热门文章

最新文章