File tree 4 files changed +180
-0
lines changed
solution/2800-2899/2843.Count Symmetric Integers
4 files changed +180
-0
lines changed Original file line number Diff line number Diff line change @@ -191,6 +191,68 @@ function countSymmetricIntegers(low: number, high: number): number {
191
191
}
192
192
```
193
193
194
+ #### Rust
195
+
196
+ ``` rust
197
+ impl Solution {
198
+ pub fn count_symmetric_integers (low : i32 , high : i32 ) -> i32 {
199
+ let mut ans = 0 ;
200
+ for x in low ..= high {
201
+ ans += Self :: f (x );
202
+ }
203
+ ans
204
+ }
205
+
206
+ fn f (x : i32 ) -> i32 {
207
+ let s = x . to_string ();
208
+ let n = s . len ();
209
+ if n % 2 == 1 {
210
+ return 0 ;
211
+ }
212
+ let bytes = s . as_bytes ();
213
+ let mut a = 0 ;
214
+ let mut b = 0 ;
215
+ for i in 0 .. n / 2 {
216
+ a += (bytes [i ] - b '0' ) as i32 ;
217
+ }
218
+ for i in n / 2 .. n {
219
+ b += (bytes [i ] - b '0' ) as i32 ;
220
+ }
221
+ if a == b { 1 } else { 0 }
222
+ }
223
+ }
224
+ ```
225
+
226
+ #### C#
227
+
228
+ ``` cs
229
+ public class Solution {
230
+ public int CountSymmetricIntegers (int low , int high ) {
231
+ int ans = 0 ;
232
+ for (int x = low ; x <= high ; ++ x ) {
233
+ ans += f (x );
234
+ }
235
+ return ans ;
236
+ }
237
+
238
+ private int f (int x ) {
239
+ string s = x .ToString ();
240
+ int n = s .Length ;
241
+ if (n % 2 == 1 ) {
242
+ return 0 ;
243
+ }
244
+ int a = 0 , b = 0 ;
245
+ for (int i = 0 ; i < n / 2 ; ++ i ) {
246
+ a += s [i ] - '0' ;
247
+ }
248
+ for (int i = n / 2 ; i < n ; ++ i ) {
249
+ b += s [i ] - '0' ;
250
+ }
251
+ return a == b ? 1 : 0 ;
252
+ }
253
+ }
254
+ ```
255
+
194
256
<!-- tabs: end -->
195
257
196
258
<!-- solution: end -->
Original file line number Diff line number Diff line change @@ -189,6 +189,68 @@ function countSymmetricIntegers(low: number, high: number): number {
189
189
}
190
190
```
191
191
192
+ #### Rust
193
+
194
+ ``` rust
195
+ impl Solution {
196
+ pub fn count_symmetric_integers (low : i32 , high : i32 ) -> i32 {
197
+ let mut ans = 0 ;
198
+ for x in low ..= high {
199
+ ans += Self :: f (x );
200
+ }
201
+ ans
202
+ }
203
+
204
+ fn f (x : i32 ) -> i32 {
205
+ let s = x . to_string ();
206
+ let n = s . len ();
207
+ if n % 2 == 1 {
208
+ return 0 ;
209
+ }
210
+ let bytes = s . as_bytes ();
211
+ let mut a = 0 ;
212
+ let mut b = 0 ;
213
+ for i in 0 .. n / 2 {
214
+ a += (bytes [i ] - b '0' ) as i32 ;
215
+ }
216
+ for i in n / 2 .. n {
217
+ b += (bytes [i ] - b '0' ) as i32 ;
218
+ }
219
+ if a == b { 1 } else { 0 }
220
+ }
221
+ }
222
+ ```
223
+
224
+ #### C#
225
+
226
+ ``` cs
227
+ public class Solution {
228
+ public int CountSymmetricIntegers (int low , int high ) {
229
+ int ans = 0 ;
230
+ for (int x = low ; x <= high ; ++ x ) {
231
+ ans += f (x );
232
+ }
233
+ return ans ;
234
+ }
235
+
236
+ private int f (int x ) {
237
+ string s = x .ToString ();
238
+ int n = s .Length ;
239
+ if (n % 2 == 1 ) {
240
+ return 0 ;
241
+ }
242
+ int a = 0 , b = 0 ;
243
+ for (int i = 0 ; i < n / 2 ; ++ i ) {
244
+ a += s [i ] - '0' ;
245
+ }
246
+ for (int i = n / 2 ; i < n ; ++ i ) {
247
+ b += s [i ] - '0' ;
248
+ }
249
+ return a == b ? 1 : 0 ;
250
+ }
251
+ }
252
+ ```
253
+
192
254
<!-- tabs: end -->
193
255
194
256
<!-- solution: end -->
Original file line number Diff line number Diff line change
1
+ public class Solution {
2
+ public int CountSymmetricIntegers ( int low , int high ) {
3
+ int ans = 0 ;
4
+ for ( int x = low ; x <= high ; ++ x ) {
5
+ ans += f ( x ) ;
6
+ }
7
+ return ans ;
8
+ }
9
+
10
+ private int f ( int x ) {
11
+ string s = x . ToString ( ) ;
12
+ int n = s . Length ;
13
+ if ( n % 2 == 1 ) {
14
+ return 0 ;
15
+ }
16
+ int a = 0 , b = 0 ;
17
+ for ( int i = 0 ; i < n / 2 ; ++ i ) {
18
+ a += s [ i ] - '0' ;
19
+ }
20
+ for ( int i = n / 2 ; i < n ; ++ i ) {
21
+ b += s [ i ] - '0' ;
22
+ }
23
+ return a == b ? 1 : 0 ;
24
+ }
25
+ }
Original file line number Diff line number Diff line change
1
+ impl Solution {
2
+ pub fn count_symmetric_integers ( low : i32 , high : i32 ) -> i32 {
3
+ let mut ans = 0 ;
4
+ for x in low..=high {
5
+ ans += Self :: f ( x) ;
6
+ }
7
+ ans
8
+ }
9
+
10
+ fn f ( x : i32 ) -> i32 {
11
+ let s = x. to_string ( ) ;
12
+ let n = s. len ( ) ;
13
+ if n % 2 == 1 {
14
+ return 0 ;
15
+ }
16
+ let bytes = s. as_bytes ( ) ;
17
+ let mut a = 0 ;
18
+ let mut b = 0 ;
19
+ for i in 0 ..n / 2 {
20
+ a += ( bytes[ i] - b'0' ) as i32 ;
21
+ }
22
+ for i in n / 2 ..n {
23
+ b += ( bytes[ i] - b'0' ) as i32 ;
24
+ }
25
+ if a == b {
26
+ 1
27
+ } else {
28
+ 0
29
+ }
30
+ }
31
+ }
You can’t perform that action at this time.
0 commit comments