File tree Expand file tree Collapse file tree 4 files changed +180
-0
lines changed
solution/2800-2899/2843.Count Symmetric Integers Expand file tree Collapse file tree 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 {
191191}
192192```
193193
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+
194256<!-- tabs: end -->
195257
196258<!-- solution: end -->
Original file line number Diff line number Diff line change @@ -189,6 +189,68 @@ function countSymmetricIntegers(low: number, high: number): number {
189189}
190190```
191191
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+
192254<!-- tabs: end -->
193255
194256<!-- 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