当前位置:网站首页>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
}
}
边栏推荐
- Win10 install elk
- Jenkins learning (III) -- setting scheduled tasks
- LeetCode每日一题(1162. As Far from Land as Possible)
- WARNING: You are using pip ; however. Later, upgrade PIP failed, modulenotfounderror: no module named 'pip‘
- LeetCode每日一题(1024. Video Stitching)
- Utilisation de hudi dans idea
- Redis learning (I)
- LeetCode每日一题(2115. Find All Possible Recipes from Given Supplies)
- Jenkins learning (II) -- setting up Chinese
- PolyWorks script development learning notes (III) -treeview advanced operation
猜你喜欢

文件系统中的目录与切换操作

Vscode编辑器右键没有Open In Default Browser选项

Spark structured stream writing Hudi practice

Flink学习笔记(九)状态编程

LeetCode每日一题(931. Minimum Falling Path Sum)

2022-2-14 learning the imitation Niuke project - send email

PolyWorks script development learning notes (III) -treeview advanced operation

Arduino handles JSON data, arduinojson assistant

Detailed steps of windows installation redis

Move anaconda, pycharm and jupyter notebook to mobile hard disk
随机推荐
Common formulas of probability theory
LeetCode每日一题(2090. K Radius Subarray Averages)
ERROR: certificate common name “*.” doesn’t match requested ho
2022-2-14 learning xiangniuke project - Session Management
【Kotlin学习】类、对象和接口——定义类继承结构
LeetCode每日一题(1162. As Far from Land as Possible)
Overview of database system
Computing level network notes
专利查询网站
2022-2-14 learning the imitation Niuke project - send email
Jenkins learning (II) -- setting up Chinese
npm install安装依赖包报错解决方法
小王叔叔的博客目录【持续更新中】
软件测试工程师是做什么的 通过技术测试软件程序中是否有漏洞
Flink学习笔记(九)状态编程
Trial of the combination of RDS and crawler
Quickly use markdown to edit articles
Django operates Excel files through openpyxl to import data into the database in batches.
Long类型的相等判断
2022-2-13 learning the imitation Niuke project - home page of the development community