Skip to content

Commit 9d5c67a

Browse files
committed
feat: add solutions to lc problem: No.2232
No.2232.Minimize Result by Adding Parentheses to Expression
1 parent 0a66a94 commit 9d5c67a

File tree

4 files changed

+116
-4
lines changed

4 files changed

+116
-4
lines changed

Diff for: solution/2200-2299/2232.Minimize Result by Adding Parentheses to Expression/README.md

+40-2
Original file line numberDiff line numberDiff line change
@@ -55,22 +55,60 @@
5555

5656
<!-- 这里可写通用的实现逻辑 -->
5757

58+
**方法一:枚举左右括号的插入位置**
59+
5860
<!-- tabs:start -->
5961

6062
### **Python3**
6163

6264
<!-- 这里可写当前语言的特殊实现逻辑 -->
6365

6466
```python
65-
67+
class Solution:
68+
def minimizeResult(self, expression: str) -> str:
69+
l, r = expression.split("+")
70+
m, n = len(l), len(r)
71+
mi = inf
72+
ans = None
73+
for i in range(m):
74+
for j in range(n):
75+
c = int(l[i:]) + int(r[: j + 1])
76+
a = 1 if i == 0 else int(l[:i])
77+
b = 1 if j == n - 1 else int(r[j + 1 :])
78+
if (t := a * b * c) < mi:
79+
mi = t
80+
ans = f"{l[:i]}({l[i:]}+{r[: j + 1]}){r[j + 1:]}"
81+
return ans
6682
```
6783

6884
### **Java**
6985

7086
<!-- 这里可写当前语言的特殊实现逻辑 -->
7187

7288
```java
73-
89+
class Solution {
90+
public String minimizeResult(String expression) {
91+
int idx = expression.indexOf('+');
92+
String l = expression.substring(0, idx);
93+
String r = expression.substring(idx + 1);
94+
int m = l.length(), n = r.length();
95+
int mi = Integer.MAX_VALUE;
96+
String ans = "";
97+
for (int i = 0; i < m; ++i) {
98+
for (int j = 0; j < n; ++j) {
99+
int c = Integer.parseInt(l.substring(i)) + Integer.parseInt(r.substring(0, j + 1));
100+
int a = i == 0 ? 1 : Integer.parseInt(l.substring(0, i));
101+
int b = j == n - 1 ? 1 : Integer.parseInt(r.substring(j + 1));
102+
int t = a * b * c;
103+
if (t < mi) {
104+
mi = t;
105+
ans = String.format("%s(%s+%s)%s", l.substring(0, i), l.substring(i), r.substring(0, j + 1), r.substring(j + 1));
106+
}
107+
}
108+
}
109+
return ans;
110+
}
111+
}
74112
```
75113

76114
### **TypeScript**

Diff for: solution/2200-2299/2232.Minimize Result by Adding Parentheses to Expression/README_EN.md

+38-2
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,49 @@ It can be shown that 170 is the smallest possible value.
5757
### **Python3**
5858

5959
```python
60-
60+
class Solution:
61+
def minimizeResult(self, expression: str) -> str:
62+
l, r = expression.split("+")
63+
m, n = len(l), len(r)
64+
mi = inf
65+
ans = None
66+
for i in range(m):
67+
for j in range(n):
68+
c = int(l[i:]) + int(r[: j + 1])
69+
a = 1 if i == 0 else int(l[:i])
70+
b = 1 if j == n - 1 else int(r[j + 1 :])
71+
if (t := a * b * c) < mi:
72+
mi = t
73+
ans = f"{l[:i]}({l[i:]}+{r[: j + 1]}){r[j + 1:]}"
74+
return ans
6175
```
6276

6377
### **Java**
6478

6579
```java
66-
80+
class Solution {
81+
public String minimizeResult(String expression) {
82+
int idx = expression.indexOf('+');
83+
String l = expression.substring(0, idx);
84+
String r = expression.substring(idx + 1);
85+
int m = l.length(), n = r.length();
86+
int mi = Integer.MAX_VALUE;
87+
String ans = "";
88+
for (int i = 0; i < m; ++i) {
89+
for (int j = 0; j < n; ++j) {
90+
int c = Integer.parseInt(l.substring(i)) + Integer.parseInt(r.substring(0, j + 1));
91+
int a = i == 0 ? 1 : Integer.parseInt(l.substring(0, i));
92+
int b = j == n - 1 ? 1 : Integer.parseInt(r.substring(j + 1));
93+
int t = a * b * c;
94+
if (t < mi) {
95+
mi = t;
96+
ans = String.format("%s(%s+%s)%s", l.substring(0, i), l.substring(i), r.substring(0, j + 1), r.substring(j + 1));
97+
}
98+
}
99+
}
100+
return ans;
101+
}
102+
}
67103
```
68104

69105
### **TypeScript**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
class Solution {
2+
public String minimizeResult(String expression) {
3+
int idx = expression.indexOf('+');
4+
String l = expression.substring(0, idx);
5+
String r = expression.substring(idx + 1);
6+
int m = l.length(), n = r.length();
7+
int mi = Integer.MAX_VALUE;
8+
String ans = "";
9+
for (int i = 0; i < m; ++i) {
10+
for (int j = 0; j < n; ++j) {
11+
int c = Integer.parseInt(l.substring(i)) + Integer.parseInt(r.substring(0, j + 1));
12+
int a = i == 0 ? 1 : Integer.parseInt(l.substring(0, i));
13+
int b = j == n - 1 ? 1 : Integer.parseInt(r.substring(j + 1));
14+
int t = a * b * c;
15+
if (t < mi) {
16+
mi = t;
17+
ans = String.format("%s(%s+%s)%s", l.substring(0, i), l.substring(i), r.substring(0, j + 1), r.substring(j + 1));
18+
}
19+
}
20+
}
21+
return ans;
22+
}
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
class Solution:
2+
def minimizeResult(self, expression: str) -> str:
3+
l, r = expression.split("+")
4+
m, n = len(l), len(r)
5+
mi = inf
6+
ans = None
7+
for i in range(m):
8+
for j in range(n):
9+
c = int(l[i:]) + int(r[: j + 1])
10+
a = 1 if i == 0 else int(l[:i])
11+
b = 1 if j == n - 1 else int(r[j + 1 :])
12+
if (t := a * b * c) < mi:
13+
mi = t
14+
ans = f"{l[:i]}({l[i:]}+{r[: j + 1]}){r[j + 1:]}"
15+
return ans

0 commit comments

Comments
 (0)