File tree Expand file tree Collapse file tree 10 files changed +147
-59
lines changed
1100-1199/1106.Parsing A Boolean Expression
1300-1399/1317.Convert Integer to the Sum of Two No-Zero Integers Expand file tree Collapse file tree 10 files changed +147
-59
lines changed Original file line number Diff line number Diff line change @@ -121,12 +121,9 @@ class Solution {
121
121
stk. pop();
122
122
}
123
123
char op = stk. pop();
124
- if (op == ' !' ) {
125
- c = f > 0 ? ' t' : ' f' ;
126
- } else if (op == ' &' ) {
127
- c = f > 0 ? ' f' : ' t' ;
128
- } else {
129
- c = t > 0 ? ' t' : ' f' ;
124
+ c = ' f' ;
125
+ if ((op == ' !' && f > 0 ) || (op == ' &' && f == 0 ) || (op == ' |' && t > 0 )) {
126
+ c = ' t' ;
130
127
}
131
128
stk. push(c);
132
129
}
@@ -186,19 +183,8 @@ func parseBoolExpr(expression string) bool {
186
183
op := stk[len(stk)-1]
187
184
stk = stk[:len(stk)-1]
188
185
c = 'f'
189
- switch op {
190
- case '!':
191
- if f > 0 {
192
- c = 't'
193
- }
194
- case '&':
195
- if f == 0 {
196
- c = 't'
197
- }
198
- case '|':
199
- if t > 0 {
200
- c = 't'
201
- }
186
+ if (op == '!' && f > 0) || (op == '&' && f == 0) || (op == '|' && t > 0) {
187
+ c = 't'
202
188
}
203
189
stk = append(stk, c)
204
190
}
Original file line number Diff line number Diff line change @@ -104,12 +104,9 @@ class Solution {
104
104
stk. pop();
105
105
}
106
106
char op = stk. pop();
107
- if (op == ' !' ) {
108
- c = f > 0 ? ' t' : ' f' ;
109
- } else if (op == ' &' ) {
110
- c = f > 0 ? ' f' : ' t' ;
111
- } else {
112
- c = t > 0 ? ' t' : ' f' ;
107
+ c = ' f' ;
108
+ if ((op == ' !' && f > 0 ) || (op == ' &' && f == 0 ) || (op == ' |' && t > 0 )) {
109
+ c = ' t' ;
113
110
}
114
111
stk. push(c);
115
112
}
@@ -169,19 +166,8 @@ func parseBoolExpr(expression string) bool {
169
166
op := stk[len(stk)-1]
170
167
stk = stk[:len(stk)-1]
171
168
c = 'f'
172
- switch op {
173
- case '!':
174
- if f > 0 {
175
- c = 't'
176
- }
177
- case '&':
178
- if f == 0 {
179
- c = 't'
180
- }
181
- case '|':
182
- if t > 0 {
183
- c = 't'
184
- }
169
+ if (op == '!' && f > 0) || (op == '&' && f == 0) || (op == '|' && t > 0) {
170
+ c = 't'
185
171
}
186
172
stk = append(stk, c)
187
173
}
Original file line number Diff line number Diff line change @@ -16,19 +16,8 @@ func parseBoolExpr(expression string) bool {
16
16
op := stk [len (stk )- 1 ]
17
17
stk = stk [:len (stk )- 1 ]
18
18
c = 'f'
19
- switch op {
20
- case '!' :
21
- if f > 0 {
22
- c = 't'
23
- }
24
- case '&' :
25
- if f == 0 {
26
- c = 't'
27
- }
28
- case '|' :
29
- if t > 0 {
30
- c = 't'
31
- }
19
+ if (op == '!' && f > 0 ) || (op == '&' && f == 0 ) || (op == '|' && t > 0 ) {
20
+ c = 't'
32
21
}
33
22
stk = append (stk , c )
34
23
}
Original file line number Diff line number Diff line change @@ -13,12 +13,9 @@ public boolean parseBoolExpr(String expression) {
13
13
stk .pop ();
14
14
}
15
15
char op = stk .pop ();
16
- if (op == '!' ) {
17
- c = f > 0 ? 't' : 'f' ;
18
- } else if (op == '&' ) {
19
- c = f > 0 ? 'f' : 't' ;
20
- } else {
21
- c = t > 0 ? 't' : 'f' ;
16
+ c = 'f' ;
17
+ if ((op == '!' && f > 0 ) || (op == '&' && f == 0 ) || (op == '|' && t > 0 )) {
18
+ c = 't' ;
22
19
}
23
20
stk .push (c );
24
21
}
Original file line number Diff line number Diff line change 64
64
65
65
<!-- 这里可写通用的实现逻辑 -->
66
66
67
+ ** 方法一:直接枚举**
68
+
69
+ 从 $1$ 开始枚举 $a$,判断 $a$ 和 $n - a$ 是否满足条件,如果满足则返回。
70
+
71
+ 时间复杂度 $O(n\times \log n)$。
72
+
67
73
<!-- tabs:start -->
68
74
69
75
### ** Python3**
70
76
71
77
<!-- 这里可写当前语言的特殊实现逻辑 -->
72
78
73
79
``` python
74
-
80
+ class Solution :
81
+ def getNoZeroIntegers (self , n : int ) -> List[int ]:
82
+ for a in range (1 , n):
83
+ b = n - a
84
+ if " 0" not in str (a) + str (b):
85
+ return [a, b]
75
86
```
76
87
77
88
### ** Java**
78
89
79
90
<!-- 这里可写当前语言的特殊实现逻辑 -->
80
91
81
92
``` java
93
+ class Solution {
94
+ public int [] getNoZeroIntegers (int n ) {
95
+ for (int a = 1 ; a < n; ++ a) {
96
+ int b = n - a;
97
+ if (! (a + " " + b). contains(" 0" )) {
98
+ return new int [] {a, b};
99
+ }
100
+ }
101
+ return null ;
102
+ }
103
+ }
104
+ ```
105
+
106
+ ### ** C++**
107
+
108
+ ``` cpp
109
+ class Solution {
110
+ public:
111
+ vector<int > getNoZeroIntegers(int n) {
112
+ for (int a = 1; a < n; ++a) {
113
+ int b = n - a;
114
+ if ((to_string(a) + to_string(b)).find('0') == string::npos) return {a, b};
115
+ }
116
+ return {};
117
+ }
118
+ };
119
+ ```
82
120
121
+ ### **Go**
122
+
123
+ ```go
124
+ func getNoZeroIntegers(n int) []int {
125
+ for a := 1; a < n; a++ {
126
+ b := n - a
127
+ if !strings.Contains(strconv.Itoa(a)+strconv.Itoa(b), "0") {
128
+ return []int{a, b}
129
+ }
130
+ }
131
+ return nil
132
+ }
83
133
```
84
134
85
135
### ** ...**
Original file line number Diff line number Diff line change 45
45
### ** Python3**
46
46
47
47
``` python
48
-
48
+ class Solution :
49
+ def getNoZeroIntegers (self , n : int ) -> List[int ]:
50
+ for a in range (1 , n):
51
+ b = n - a
52
+ if " 0" not in str (a) + str (b):
53
+ return [a, b]
49
54
```
50
55
51
56
### ** Java**
52
57
53
58
``` java
59
+ class Solution {
60
+ public int [] getNoZeroIntegers (int n ) {
61
+ for (int a = 1 ; a < n; ++ a) {
62
+ int b = n - a;
63
+ if (! (a + " " + b). contains(" 0" )) {
64
+ return new int [] {a, b};
65
+ }
66
+ }
67
+ return null ;
68
+ }
69
+ }
70
+ ```
71
+
72
+ ### ** C++**
73
+
74
+ ``` cpp
75
+ class Solution {
76
+ public:
77
+ vector<int > getNoZeroIntegers(int n) {
78
+ for (int a = 1; a < n; ++a) {
79
+ int b = n - a;
80
+ if ((to_string(a) + to_string(b)).find('0') == string::npos) return {a, b};
81
+ }
82
+ return {};
83
+ }
84
+ };
85
+ ```
54
86
87
+ ### **Go**
88
+
89
+ ```go
90
+ func getNoZeroIntegers(n int) []int {
91
+ for a := 1; a < n; a++ {
92
+ b := n - a
93
+ if !strings.Contains(strconv.Itoa(a)+strconv.Itoa(b), "0") {
94
+ return []int{a, b}
95
+ }
96
+ }
97
+ return nil
98
+ }
55
99
```
56
100
57
101
### ** ...**
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public:
3
+ vector<int > getNoZeroIntegers (int n) {
4
+ for (int a = 1 ; a < n; ++a) {
5
+ int b = n - a;
6
+ if ((to_string (a) + to_string (b)).find (' 0' ) == string::npos) return {a, b};
7
+ }
8
+ return {};
9
+ }
10
+ };
Original file line number Diff line number Diff line change
1
+ func getNoZeroIntegers (n int ) []int {
2
+ for a := 1 ; a < n ; a ++ {
3
+ b := n - a
4
+ if ! strings .Contains (strconv .Itoa (a )+ strconv .Itoa (b ), "0" ) {
5
+ return []int {a , b }
6
+ }
7
+ }
8
+ return nil
9
+ }
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public int [] getNoZeroIntegers (int n ) {
3
+ for (int a = 1 ; a < n ; ++a ) {
4
+ int b = n - a ;
5
+ if (!(a + "" + b ).contains ("0" )) {
6
+ return new int [] {a , b };
7
+ }
8
+ }
9
+ return null ;
10
+ }
11
+ }
Original file line number Diff line number Diff line change
1
+ class Solution :
2
+ def getNoZeroIntegers (self , n : int ) -> List [int ]:
3
+ for a in range (1 , n ):
4
+ b = n - a
5
+ if "0" not in str (a ) + str (b ):
6
+ return [a , b ]
You can’t perform that action at this time.
0 commit comments