当前位置:网站首页>Leetcode daily question (2232. minimize result by addressing parents to expression)
Leetcode daily question (2232. minimize result by addressing parents to expression)
2022-07-03 09:33:00 【wangjun861205】
You are given a 0-indexed string expression of the form “+” where and represent positive integers.
Add a pair of parentheses to expression such that after the addition of parentheses, expression is a valid mathematical expression and evaluates to the smallest possible value. The left parenthesis must be added to the left of ‘+’ and the right parenthesis must be added to the right of ‘+’.
Return expression after adding a pair of parentheses such that expression evaluates to the smallest possible value. If there are multiple answers that yield the same result, return any of them.
The input has been generated such that the original value of expression, and the value of expression after adding any pair of parentheses that meets the requirements fits within a signed 32-bit integer.
Example 1:
Input: expression = “247+38”
Output: “2(47+38)”
Explanation: The expression evaluates to 2 _ (47 + 38) = 2 _ 85 = 170.
Note that “2(4)7+38” is invalid because the right parenthesis must be to the right of the ‘+’.
It can be shown that 170 is the smallest possible value.
Example 2:
Input: expression = “12+34”
Output: “1(2+3)4”
Explanation: The expression evaluates to 1 _ (2 + 3) _ 4 = 1 _ 5 _ 4 = 20.
Example 3:
Input: expression = “999+999”
Output: “(999+999)”
Explanation: The expression evaluates to 999 + 999 = 1998.
Constraints:
- 3 <= expression.length <= 10
- expression consists of digits from ‘1’ to ‘9’ and ‘+’.
- expression starts and ends with digits.
- expression contains exactly one ‘+’.
- The original value of expression, and the value of expression after adding any pair of parentheses that meets the requirements fits within a signed 32-bit integer.
use / and % Operation splits numbers , Then find the smallest combination , Be careful /1 and %1 Handling of special situations
impl Solution {
pub fn minimize_result(expression: String) -> String {
let tokens: Vec<&str> = expression.split("+").collect();
let left = tokens[0].parse::<i32>().unwrap();
let right = tokens[1].parse::<i32>().unwrap();
let mut ans = left + right;
let mut ans_str = expression.clone();
let mut left_exp = 0;
let mut right_exp = 0;
while left / 10i32.pow(left_exp) > 0 {
let mut a = left / 10i32.pow(left_exp);
let mut b = left % 10i32.pow(left_exp);
if a == left {
a = 1;
b = left;
}
while right / 10i32.pow(right_exp) > 0 {
let c = right / 10i32.pow(right_exp);
let mut d = right % 10i32.pow(right_exp);
if c == right {
d = 1;
}
let v = a * (b + c) * d;
if v < ans {
let mut s = String::new();
if left_exp == 0 {
s.push_str(&format!("({}", left));
} else {
s.push_str(&format!("{}({}", a, b));
}
s.push('+');
if right_exp == 0 {
s.push_str(&format!("{})", right));
} else {
s.push_str(&format!("{}){}", c, d))
}
ans_str = s;
ans = v;
}
right_exp += 1;
}
left_exp += 1;
right_exp = 0;
}
if ans_str == expression {
ans_str.insert(0, '(');
ans_str.push(')');
}
ans_str
}
}
边栏推荐
- LeetCode每日一题(2305. Fair Distribution of Cookies)
- There is no open in default browser option in the right click of the vscade editor
- Usage of pandas to obtain MySQL data
- LeetCode每日一题(1856. Maximum Subarray Min-Product)
- Jetson Nano 自定义启动图标kernel Logo cboot logo
- Redis learning (I)
- Win10 quick screenshot
- [CSDN] C1 training problem analysis_ Part III_ JS Foundation
- Detailed steps of windows installation redis
- 【Kotlin疑惑】在Kotlin类中重载一个算术运算符,并把该运算符声明为扩展函数会发生什么?
猜你喜欢
Hudi data management and storage overview
Idea uses the MVN command to package and report an error, which is not available
Spark 概述
CATIA automation object architecture - detailed explanation of application objects (III) systemservice
Build a solo blog from scratch
LeetCode每日一题(2090. K Radius Subarray Averages)
[point cloud processing paper crazy reading cutting-edge version 12] - adaptive graph revolution for point cloud analysis
Django operates Excel files through openpyxl to import data into the database in batches.
解决Editor.md上传图片获取不到图片地址问题
【Kotlin学习】类、对象和接口——带非默认构造方法或属性的类、数据类和类委托、object关键字
随机推荐
ERROR: certificate common name “www.mysql.com” doesn’t match requested host name “137.254.60.11”.
Windows安装Redis详细步骤
LeetCode每日一题(931. Minimum Falling Path Sum)
Arduino handles JSON data, arduinojson assistant
Win10 install elk
LeetCode每日一题(2232. Minimize Result by Adding Parentheses to Expression)
Make the most basic root file system of Jetson nano and mount NFS file system on the server
【Kotlin学习】类、对象和接口——带非默认构造方法或属性的类、数据类和类委托、object关键字
Serializer rewrite: update and create methods
unbuntu(debian)下TFTP服务器搭建及测试
[point cloud processing paper crazy reading classic version 13] - adaptive graph revolutionary neural networks
Win10 quick screenshot
LeetCode每日一题(1024. Video Stitching)
QT sub window is blocked, and the main window cannot be clicked after the sub window pops up
Equality judgment of long type
The idea of compiling VBA Encyclopedia
【Kotlin学习】类、对象和接口——定义类继承结构
Jetson nano custom boot icon kernel logo CBOOT logo
Django operates Excel files through openpyxl to import data into the database in batches.
[kotlin learning] classes, objects and interfaces - classes with non default construction methods or attributes, data classes and class delegates, object keywords