博客
关于我
LeetCode 241. 为运算表达式设计优先级--分治
阅读量:729 次
发布时间:2019-03-21

本文共 667 字,大约阅读时间需要 2 分钟。

当然可以!以下是优化后的内容:

运算表达式的括号问题

在运算表达式中,括号的存在会影响运算顺序。为了生成所有可能的运算结果,我们需要考虑不同的括号组合方式。以下是一些步骤和思路,帮助我们解决这个问题。

首先,我们需要解析输入的表达式,将数字和运算符区分开来。我们将每个运算符转化为特定的代码(如+为0,-为1,*为2),然后将数字存储在一个向量中。接下来,我们使用递归函数进行分治处理。

递归函数的作用是根据运算符的位置,将表达式分成左右两部分,分别处理并进行计算。具体来说:

  • 如果当前的位置只有两个数字,则直接计算。
  • 如果只有一个数字,返回这个数字。
  • 否则,遍历到每个运算符的位置,将左边和右边的所有可能结果进行组合,使用相应的运算规则进行计算。
  • 还需要注意,递归函数需要返回一个向量,以包含所有可能的运算结果。然后,我们最后对这些结果进行排序并输出。

    具体实现步骤:

  • 初始化一个向量q,解析表达式,数字和运算符交替出现。
  • 调用递归函数,从0位置开始处理直到整个表达式结束。
  • 递归函数内部,根据当前运算符的位置,遍历左边和右边的所有可能结果,并按运算符类型进行组合。
  • 将所有可能的结果收集起来,最后返回并排序。
  • 这样,我们能得到所有可能的运算结果。通过递归和分治策略,任何长度的表达式也都能被有效处理,生成所有可能的答案组合。这不仅有助于理解运算顺序的优先级问题,也能为解决更复杂的括号问题提供思路。

    如果你有具体的表达式需要处理,可以按照上述方法进行解析和计算。这样,不同的括号组合都会被正确计算并收集,确保结果的完整性和准确性。

    转载地址:http://wwvgz.baihongyu.com/

    你可能感兴趣的文章
    php & 和 & (主要是url 问题)
    查看>>
    php -- 魔术方法 之 判断属性是否存在或为空:__isset()
    查看>>
    php -- 魔术方法 之 获取属性:__get()
    查看>>
    php -树-二叉树的实现
    查看>>
    PHP -算法-二路归并
    查看>>
    php 2条不一样 的json数据 怎么放在一个json里面_如果你是PHP开发者,请务必了解一下Composer...
    查看>>
    php 360 不记住密码,JavaScript_多种方法实现360浏览器下禁止自动填写用户名密码,目前开发一个项目遇到一个很 - phpStudy...
    查看>>
    regExp的match、exec、test区别
    查看>>
    php 404 自定义,APACHE 自定义404错误页面设置方法
    查看>>
    PHP 5.3.0以上推荐使用mysqlnd驱动
    查看>>
    php aes sha1解密,PHP AES加密/解密
    查看>>
    php CI框架单个file表单多文件上传例子
    查看>>
    php composer
    查看>>
    reflow和repaint引发的性能问题
    查看>>
    php csv 导出
    查看>>
    php curl 实例+详解
    查看>>
    php curl_init函数用法(http://blog.sina.com.cn/s/blog_640738130100tsig.html)
    查看>>
    php curl_multi批量发送http请求
    查看>>
    PHP curl请求错误汇总和解决方案
    查看>>
    php echo 输出 锘?... 乱码问题
    查看>>