Golang | Leetcode Golang题解之第224题基本计算器

题目:

题解:

func calculate(s string) (ans int) {
    ops := []int{1}
    sign := 1
    n := len(s)
    for i := 0; i < n; {
        switch s[i] {
        case ' ':
            i++
        case '+':
            sign = ops[len(ops)-1]
            i++
        case '-':
            sign = -ops[len(ops)-1]
            i++
        case '(':
            ops = append(ops, sign)
            i++
        case ')':
            ops = ops[:len(ops)-1]
            i++
        default:
            num := 0
            for ; i < n && '0' <= s[i] && s[i] <= '9'; i++ {
                num = num*10 + int(s[i]-'0')
            }
            ans += sign * num
        }
    }
    return
}

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 09:46:02       99 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 09:46:02       107 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 09:46:02       90 阅读
  4. Python语言-面向对象

    2024-07-10 09:46:02       98 阅读

热门阅读

  1. Linux系统管理面试题

    2024-07-10 09:46:02       30 阅读
  2. IO练习网络爬虫获取

    2024-07-10 09:46:02       28 阅读
  3. C++设计模式---备忘录模式

    2024-07-10 09:46:02       23 阅读
  4. WHAT - React useEffect 依赖的 Object.is

    2024-07-10 09:46:02       27 阅读
  5. 探索 Neo4j:图数据库的强大应用

    2024-07-10 09:46:02       35 阅读