前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode 2232. 向表达式添加括号后的最小结果

LeetCode 2232. 向表达式添加括号后的最小结果

作者头像
Michael阿明
发布2022-11-27 17:13:34
3240
发布2022-11-27 17:13:34
举报

文章目录

1. 题目

给你一个下标从 0 开始的字符串 expression ,格式为 "<num1>+<num2>" ,其中 <num1><num2> 表示正整数。

请你向 expression 中添加一对括号,使得在添加之后, expression 仍然是一个有效的数学表达式,并且计算后可以得到 最小 可能值。 左括号 必须 添加在 '+' 的左侧,而右括号 必须 添加在 ‘+’ 的右侧。

返回添加一对括号后形成的表达式 expression ,且满足 expression 计算得到 最小 可能值。如果存在多个答案都能产生相同结果,返回任意一个答案。

生成的输入满足:expression 的原始值和添加满足要求的任一对括号之后 expression 的值,都符合 32-bit 带符号整数范围。

代码语言:javascript
复制
示例 1:
输入:expression = "247+38"
输出:"2(47+38)"
解释:表达式计算得到 2 * (47 + 38) = 2 * 85 = 170 。
注意 "2(4)7+38" 不是有效的结果,因为右括号必须添加在 '+' 的右侧。
可以证明 170 是最小可能值。

示例 2:
输入:expression = "12+34"
输出:"1(2+3)4"
解释:表达式计算得到 1 * (2 + 3) * 4 = 1 * 5 * 4 = 20 。

示例 3:
输入:expression = "999+999"
输出:"(999+999)"
解释:表达式计算得到 999 + 999 = 1998 。
 
提示:
3 <= expression.length <= 10
expression 仅由数字 '1' 到 '9' 和 '+' 组成
expression 由数字开始和结束
expression 恰好仅含有一个 '+'.
expression 的原始值和添加满足要求的任一对括号之后 expression 的值,都符合 32-bit 带符号整数范围

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/minimize-result-by-adding-parentheses-to-expression 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 把字符切成两半,枚举左右数字切开的位置
代码语言:javascript
复制
class Solution:
    def minimizeResult(self, expression: str) -> str:
        p1, p2 = expression.split('+')
        ans = ''
        minres = 1e16
        for i in range(len(p1)):
            for j in range(1, len(p2)+1):
                a = int(p1[:i]) if i>0 else 1
                b = int(p1[i:])
                c = int(p2[:j])
                d = int(p2[j:]) if j<len(p2) else 1
                res = a*(b+c)*d
                if res < minres:
                    minres = res
                    stra = '' if i==0 else str(a)
                    strd = '' if j==len(p2) else str(d)
                    ans = stra+'('+str(b) +'+'+str(c)+')'+strd
        return ans

36 ms 15 MB Python3


我的CSDN博客地址 https://michael.blog.csdn.net/

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-05-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1. 题目
  • 2. 解题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档