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

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

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

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

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

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

示例 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. 解题

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

36 ms 15 MB Python3


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

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/471084.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一、服务端开发基础(搭建Web服务器、网络基础概念、请求响应流程、配置Apache、静态网站与动态网站)

一、建立你的第一个网站&#xff08;目标&#xff09; 前端开发 最终还是属于 Web 开发 中的一个分支&#xff0c;想要成为一名合格的前端开发人员&#xff0c;就必须要 充分理解Web 的概念。 构建一个专业的网站是一项巨大的工作&#xff01;对于新手我们应该从小事做起&#…

LeetCode 2233. K 次增加后的最大乘积(优先队列)

文章目录1. 题目2. 解题1. 题目 给你一个非负整数数组 nums 和一个整数 k 。每次操作&#xff0c;你可以选择 nums 中 任一 元素并将它 增加 1 。 请你返回 至多 k 次操作后&#xff0c;能得到的 nums的 最大乘积 。由于答案可能很大&#xff0c;请你将答案对 10^9 7 取余后…

Packet Tracer 5.0 建构 CCNA 实验攻略——配置单区域 OSPF

一、拓扑结构如下&#xff1a; 二、分别为PC0、PC1配置IP地址&#xff0c;子网掩码和默认网关。 三、分别为路由器0、路由器1和路由器2各个接口配置IP地址和子网掩码&#xff0c;并将路由器的开关打开。 注意&#xff1a;可以通过命令show ip route 来查看路由表信息 路由器1和…

NSBundle

bundle是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in). 对应bundle,cocoa提供了类NSBundle. 1、获取bundle (NSBundle *)mainBundle; //app的目录 NSBundle *file [NSBundle mainBundle]; NSLog(&…

Packet Tracer 5.0 建构 CCNA 实验攻略——路由器实现 Vlan 间通信

一、网络拓扑结构如下&#xff1a; 二、为六台PC分别配置IP地址、子网掩码和默认网关 其余五台PC的配置与上图类似。 三、为路由器0创建g0/0.1逻辑子接口和g0/0.2逻辑子接口&#xff0c;并 设置g0/0.1逻辑子接口可以接受VLAN id 为10的802.1q帧&#xff0c;并且可将IP数据报封…

9.ARM寻址方式

9.ARM寻址方式 1.立即数寻址 立即数寻址&#xff0c;是一种特殊的寻址方式&#xff0c;操作数本身就是在指令中给出。只有取出指令就取到了操作数。这个操作数就称为立即数&#xff0c;对应的寻址方式就是立即数寻址方式。例如&#xff1a; ADD R0,R1,#0X45;这汇编的意思&…

LeetCode LCP 51. 烹饪料理(状态枚举)

文章目录1. 题目2. 解题1. 题目 欢迎各位勇者来到力扣城&#xff0c;城内设有烹饪锅供勇者制作料理&#xff0c;为自己恢复状态。 勇者背包内共有编号为 0 ~ 4 的五种食材&#xff0c;其中 meterials[j] 表示第 j 种食材的数量。 通过这些食材可以制作若干料理&#xff0c;co…

Packet Tracer实验——使用三层交换机实现vlan间的通信(详解)

一、网络拓扑结构如下 实验目的&#xff1a;通过划分vlan实现了隔离广播域&#xff0c;同时还能实现vlan间的单播通信 二、为6台PC配置IP地址、子网掩码和默认网关 三、分别为2个vlan接口配置ip地址和子网掩码 四、为vlan10、vlan20分配ip地址和子网掩码&#xff0c;并命名为…

一、数据预处理——数据归一化 数据标准化

一、数据预处理——数据归一化 & 数据标准化 点击标题即可获取文章相关的源代码文件哟&#xff01; 1.1 数据无量纲化 在机器学习算法实践中&#xff0c;我们往往有着将不同规格的数据转换到同一规格&#xff0c;或不同分布的数据转换到某个特定分布的需求&#xff0c;这种…

LeetCode 2239. 找到最接近 0 的数字

文章目录1. 题目2. 解题1. 题目 给你一个长度为 n 的整数数组 nums &#xff0c;请你返回 nums 中最 接近 0 的数字。如果有多个答案&#xff0c;请你返回它们中的 最大值 。 示例 1&#xff1a; 输入&#xff1a;nums [-4,-2,1,4,8] 输出&#xff1a;1 解释&#xff1a; -4…

HTML静态网页---标签

一、 创建HTML&#xff1a; &#xff08;一&#xff09; body的属性&#xff1a; bgcolor        页面背景色 background      背景壁纸、图片 text          文字颜色 topmargin       上边距 leftmargin       左边距 rightmargin  …

LeetCode 2240. 买钢笔和铅笔的方案数

文章目录1. 题目2. 解题1. 题目 给你一个整数 total &#xff0c;表示你拥有的总钱数。同时给你两个整数 cost1 和 cost2 &#xff0c;分别表示一支钢笔和一支铅笔的价格。 你可以花费你部分或者全部的钱&#xff0c;去买任意数目的两种笔。 请你返回购买钢笔和铅笔的 不同方…

axis=0 与axis=1 的区分

1. 使用0值表示沿着每一列或行标签\索引值向下执行方法 2. 使用1值表示沿着每一行或者列标签模向执行对应的方法 下图代表在DataFrame当中axis为0和1时分别代表的含义: df.mean(axis1)代表沿着列水平方向计算均值&#xff0c;而df.drop(name, axis1) 代表将name对应的列标签…

LeetCode 2241. 设计一个 ATM 机器

文章目录1. 题目2. 解题1. 题目 一个 ATM 机器&#xff0c;存有 5 种面值的钞票&#xff1a;20 &#xff0c;50 &#xff0c;100 &#xff0c;200 和 500 美元。初始时&#xff0c;ATM 机是空的。用户可以用它存或者取任意数目的钱。 取款时&#xff0c;机器会优先取 较大 数…

二、数据预处理——缺失值处理

二、数据预处理——缺失值处理 点击标题即可获取文章相关的源代码文件哟&#xff01; 机器学习和数据挖掘中所使用的数据&#xff0c;永远不可能是完美的。很多特征&#xff0c;对于分析和建模来说意义非凡&#xff0c;但对于实际收集数据的人却不是如此&#xff0c;因此数据挖…

LeetCode 2243. 计算字符串的数字和

文章目录1. 题目2. 解题1. 题目 给你一个由若干数字&#xff08;0 - 9&#xff09;组成的字符串 s &#xff0c;和一个整数。 如果 s 的长度大于 k &#xff0c;则可以执行一轮操作。在一轮操作中&#xff0c;需要完成以下工作&#xff1a; 将 s 拆分 成长度为 k 的若干 连续…

三、数据预处理——处理分类型数据:编码与哑变量

三、处理分类型特征&#xff1a;编码与哑变量 点击标题即可获取文章相关的源代码文件哟&#xff01; 在机器学习中&#xff0c;大多数算法&#xff0c;譬如逻辑回归&#xff0c;支持向量机SVM&#xff0c;k近邻算法等都只能够处理数值型数据&#xff0c;不能处理文字&#xff0…

LeetCode 2244. 完成所有任务需要的最少轮数

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的整数数组 tasks &#xff0c;其中 tasks[i] 表示任务的难度级别。 在每一轮中&#xff0c;你可以完成 2 个或者 3 个 相同难度级别 的任务。 返回完成所有任务需要的 最少 轮数&#xff0c;如果无法完成所有任务&…

BZOJ-1951 古代猪文 (组合数取模Lucas+中国剩余定理+拓展欧几里得+快速幂)...

数论神题了吧算是1951: [Sdoi2010]古代猪文 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1573 Solved: 650 [Submit][Status][Discuss] Description “在那山的那边海的那边有一群小肥猪。他们活泼又聪明&#xff0c;他们调皮又灵敏。他们自由自在生活在那绿色的大草坪…

四、数据预处理——处理连续型特征:二值化与分段

四、数据预处理——处理连续型特征&#xff1a;二值化与分段 点击标题即可获取文章相关的源代码文件哟&#xff01; - sklearn.preprocessing.Binarizer 根据阈值将数据二值化&#xff08;将特征值设置为0或1&#xff09;&#xff0c;用于处理连续型变量。大于阈值的值映射为1&…