Golang | Leetcode Golang题解之第241题为运算表达式设计优先级

题目:

题解:

const addition, subtraction, multiplication = -1, -2, -3

func diffWaysToCompute(expression string) []int {
    ops := []int{}
    for i, n := 0, len(expression); i < n; {
        if unicode.IsDigit(rune(expression[i])) {
            x := 0
            for ; i < n && unicode.IsDigit(rune(expression[i])); i++ {
                x = x*10 + int(expression[i]-'0')
            }
            ops = append(ops, x)
        } else {
            if expression[i] == '+' {
                ops = append(ops, addition)
            } else if expression[i] == '-' {
                ops = append(ops, subtraction)
            } else {
                ops = append(ops, multiplication)
            }
            i++
        }
    }

    n := len(ops)
    dp := make([][][]int, n)
    for i, x := range ops {
        dp[i] = make([][]int, n)
        dp[i][i] = []int{x}
    }
    for sz := 3; sz <= n; sz++ {
        for l, r := 0, sz-1; r < n; l += 2 {
            for k := l + 1; k < r; k += 2 {
                for _, x := range dp[l][k-1] {
                    for _, y := range dp[k+1][r] {
                        if ops[k] == addition {
                            dp[l][r] = append(dp[l][r], x+y)
                        } else if ops[k] == subtraction {
                            dp[l][r] = append(dp[l][r], x-y)
                        } else {
                            dp[l][r] = append(dp[l][r], x*y)
                        }
                    }
                }
            }
            r += 2
        }
    }
    return dp[0][n-1]
}

最近更新

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

    2024-07-18 08:04:06       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 08:04:06       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 08:04:06       57 阅读
  4. Python语言-面向对象

    2024-07-18 08:04:06       68 阅读

热门阅读

  1. Oracle(8)什么是Oracle实例(Instance)?

    2024-07-18 08:04:06       22 阅读
  2. python 迭代器介绍 map() 函数

    2024-07-18 08:04:06       19 阅读
  3. Linux chmod 命令简介

    2024-07-18 08:04:06       24 阅读
  4. QT+winodow 代码适配调试总结(三)

    2024-07-18 08:04:06       21 阅读
  5. 代码随想录学习 54day 图论 A star算法

    2024-07-18 08:04:06       16 阅读
  6. Windows中配置Python 3.11环境安装教程

    2024-07-18 08:04:06       22 阅读
  7. 灵动微单片机SPI LCD彩屏方案优势

    2024-07-18 08:04:06       22 阅读
  8. DP学习——组合模式

    2024-07-18 08:04:06       18 阅读
  9. (三)js前端开发中设计模式之工厂模式

    2024-07-18 08:04:06       18 阅读