File tree Expand file tree Collapse file tree 7 files changed +162
-0
lines changed
0200-0299/0242.Valid Anagram
1300-1399/1356.Sort Integers by The Number of 1 Bits Expand file tree Collapse file tree 7 files changed +162
-0
lines changed Original file line number Diff line number Diff line change @@ -167,6 +167,26 @@ var isAnagram = function (s, t) {
167
167
};
168
168
```
169
169
170
+ ### ** Rust**
171
+
172
+ ``` rust
173
+ impl Solution {
174
+ pub fn is_anagram (s : String , t : String ) -> bool {
175
+ if s . len () != t . len () {
176
+ return false ;
177
+ }
178
+ let (s , t ) = (s . as_bytes (), t . as_bytes ());
179
+ let mut record = [0 ; 26 ];
180
+ let n = s . len ();
181
+ for i in 0 .. n {
182
+ record [(s [i ] - b 'a' ) as usize ] += 1 ;
183
+ record [(t [i ] - b 'a' ) as usize ] -= 1 ;
184
+ }
185
+ record . iter (). all (| & c | c == 0 )
186
+ }
187
+ }
188
+ ```
189
+
170
190
### ** ...**
171
191
172
192
```
Original file line number Diff line number Diff line change @@ -148,6 +148,26 @@ var isAnagram = function (s, t) {
148
148
};
149
149
```
150
150
151
+ ### ** Rust**
152
+
153
+ ``` rust
154
+ impl Solution {
155
+ pub fn is_anagram (s : String , t : String ) -> bool {
156
+ if s . len () != t . len () {
157
+ return false ;
158
+ }
159
+ let (s , t ) = (s . as_bytes (), t . as_bytes ());
160
+ let mut record = [0 ; 26 ];
161
+ let n = s . len ();
162
+ for i in 0 .. n {
163
+ record [(s [i ] - b 'a' ) as usize ] += 1 ;
164
+ record [(t [i ] - b 'a' ) as usize ] -= 1 ;
165
+ }
166
+ record . iter (). all (| & c | c == 0 )
167
+ }
168
+ }
169
+ ```
170
+
151
171
### ** ...**
152
172
153
173
```
Original file line number Diff line number Diff line change
1
+ impl Solution {
2
+ pub fn is_anagram ( s : String , t : String ) -> bool {
3
+ if s. len ( ) != t. len ( ) {
4
+ return false ;
5
+ }
6
+ let ( s, t) = ( s. as_bytes ( ) , t. as_bytes ( ) ) ;
7
+ let mut record = [ 0 ; 26 ] ;
8
+ let n = s. len ( ) ;
9
+ for i in 0 ..n {
10
+ record[ ( s[ i] - b'a' ) as usize ] += 1 ;
11
+ record[ ( t[ i] - b'a' ) as usize ] -= 1 ;
12
+ }
13
+ record. iter ( ) . all ( |& c| c == 0 )
14
+ }
15
+ }
Original file line number Diff line number Diff line change @@ -96,6 +96,45 @@ class Solution {
96
96
}
97
97
```
98
98
99
+ ### ** TypeScript**
100
+
101
+ ``` ts
102
+ function sortByBits(arr : number []): number [] {
103
+ const countOnes = (num : number ) => {
104
+ let count = 0 ;
105
+ while (num !== 0 ) {
106
+ num &= num - 1 ;
107
+ count ++ ;
108
+ }
109
+ return count ;
110
+ };
111
+ return arr .sort ((a , b ) => {
112
+ let res = countOnes (a ) - countOnes (b );
113
+ if (res === 0 ) {
114
+ return a - b ;
115
+ }
116
+ return res ;
117
+ });
118
+ }
119
+ ```
120
+
121
+ ### ** Rust**
122
+
123
+ ``` rust
124
+ impl Solution {
125
+ pub fn sort_by_bits (mut arr : Vec <i32 >) -> Vec <i32 > {
126
+ arr . sort_unstable_by (| a , b | {
127
+ let res = a . count_ones (). cmp (& b . count_ones ());
128
+ if res == std :: cmp :: Ordering :: Equal {
129
+ return a . cmp (& b );
130
+ }
131
+ res
132
+ });
133
+ arr
134
+ }
135
+ }
136
+ ```
137
+
99
138
### ** ...**
100
139
101
140
```
Original file line number Diff line number Diff line change @@ -68,6 +68,45 @@ class Solution {
68
68
}
69
69
```
70
70
71
+ ### ** TypeScript**
72
+
73
+ ``` ts
74
+ function sortByBits(arr : number []): number [] {
75
+ const countOnes = (num : number ) => {
76
+ let count = 0 ;
77
+ while (num !== 0 ) {
78
+ num &= num - 1 ;
79
+ count ++ ;
80
+ }
81
+ return count ;
82
+ };
83
+ return arr .sort ((a , b ) => {
84
+ let res = countOnes (a ) - countOnes (b );
85
+ if (res === 0 ) {
86
+ return a - b ;
87
+ }
88
+ return res ;
89
+ });
90
+ }
91
+ ```
92
+
93
+ ### ** Rust**
94
+
95
+ ``` rust
96
+ impl Solution {
97
+ pub fn sort_by_bits (mut arr : Vec <i32 >) -> Vec <i32 > {
98
+ arr . sort_unstable_by (| a , b | {
99
+ let res = a . count_ones (). cmp (& b . count_ones ());
100
+ if res == std :: cmp :: Ordering :: Equal {
101
+ return a . cmp (& b );
102
+ }
103
+ res
104
+ });
105
+ arr
106
+ }
107
+ }
108
+ ```
109
+
71
110
### ** ...**
72
111
73
112
```
Original file line number Diff line number Diff line change
1
+ impl Solution {
2
+ pub fn sort_by_bits ( mut arr : Vec < i32 > ) -> Vec < i32 > {
3
+ arr. sort_unstable_by ( |a, b| {
4
+ let res = a. count_ones ( ) . cmp ( & b. count_ones ( ) ) ;
5
+ if res == std:: cmp:: Ordering :: Equal {
6
+ return a. cmp ( & b) ;
7
+ }
8
+ res
9
+ } ) ;
10
+ arr
11
+ }
12
+ }
Original file line number Diff line number Diff line change
1
+ function sortByBits ( arr : number [ ] ) : number [ ] {
2
+ const countOnes = ( num : number ) => {
3
+ let count = 0 ;
4
+ while ( num !== 0 ) {
5
+ num &= num - 1 ;
6
+ count ++ ;
7
+ }
8
+ return count ;
9
+ } ;
10
+ return arr . sort ( ( a , b ) => {
11
+ let res = countOnes ( a ) - countOnes ( b ) ;
12
+ if ( res === 0 ) {
13
+ return a - b ;
14
+ }
15
+ return res ;
16
+ } ) ;
17
+ }
You can’t perform that action at this time.
0 commit comments