File tree 8 files changed +211
-2
lines changed
2491.Divide Players Into Teams of Equal Skill
8 files changed +211
-2
lines changed Original file line number Diff line number Diff line change @@ -153,7 +153,7 @@ func isCircularSentence(sentence string) bool {
153
153
### ** JavaScript**
154
154
155
155
``` js
156
- var isCircularSentence = function (sentence ) {
156
+ var isCircularSentence = function (sentence ) {
157
157
const words = sentence .split (' ' );
158
158
const post = words[0 ].charCodeAt (0 );
159
159
let prev = words[0 ].charCodeAt (words[0 ].length - 1 );
@@ -169,6 +169,45 @@ var isCircularSentence = function(sentence) {
169
169
};
170
170
```
171
171
172
+ ### ** TypeScript**
173
+
174
+ ``` ts
175
+ function isCircularSentence(sentence : string ): boolean {
176
+ const ss = sentence .split (' ' );
177
+ const n = ss .length ;
178
+ if (ss [0 ][0 ] !== ss [n - 1 ][ss [n - 1 ].length - 1 ]) {
179
+ return false ;
180
+ }
181
+ for (let i = 0 ; i < n - 1 ; i ++ ) {
182
+ if (ss [i ][ss [i ].length - 1 ] !== ss [i + 1 ][0 ]) {
183
+ return false ;
184
+ }
185
+ }
186
+ return true ;
187
+ }
188
+ ```
189
+
190
+ ### ** Rust**
191
+
192
+ ``` rust
193
+ impl Solution {
194
+ pub fn is_circular_sentence (sentence : String ) -> bool {
195
+ let ss : Vec <String > = sentence . split (' ' ). map (String :: from ). collect ();
196
+ let n = ss . len ();
197
+ if ss [0 ]. as_bytes ()[0 ] != ss [n - 1 ]. as_bytes ()[ss [n - 1 ]. len () - 1 ] {
198
+ return false ;
199
+ }
200
+ for i in 1 .. n {
201
+ if ss [i - 1 ]. as_bytes ()[ss [i - 1 ]. len () - 1 ] != ss [i ]. as_bytes ()[0 ] {
202
+ return false ;
203
+ }
204
+ }
205
+ return true ;
206
+ }
207
+ }
208
+ ```
209
+
210
+
172
211
### ** ...**
173
212
174
213
```
Original file line number Diff line number Diff line change @@ -137,7 +137,7 @@ func isCircularSentence(sentence string) bool {
137
137
### ** JavaScript**
138
138
139
139
``` js
140
- var isCircularSentence = function (sentence ) {
140
+ var isCircularSentence = function (sentence ) {
141
141
const words = sentence .split (' ' );
142
142
const post = words[0 ].charCodeAt (0 );
143
143
let prev = words[0 ].charCodeAt (words[0 ].length - 1 );
@@ -153,6 +153,44 @@ var isCircularSentence = function(sentence) {
153
153
};
154
154
```
155
155
156
+ ### ** TypeScript**
157
+
158
+ ``` ts
159
+ function isCircularSentence(sentence : string ): boolean {
160
+ const ss = sentence .split (' ' );
161
+ const n = ss .length ;
162
+ if (ss [0 ][0 ] !== ss [n - 1 ][ss [n - 1 ].length - 1 ]) {
163
+ return false ;
164
+ }
165
+ for (let i = 0 ; i < n - 1 ; i ++ ) {
166
+ if (ss [i ][ss [i ].length - 1 ] !== ss [i + 1 ][0 ]) {
167
+ return false ;
168
+ }
169
+ }
170
+ return true ;
171
+ }
172
+ ```
173
+
174
+ ### ** Rust**
175
+
176
+ ``` rust
177
+ impl Solution {
178
+ pub fn is_circular_sentence (sentence : String ) -> bool {
179
+ let ss : Vec <String > = sentence . split (' ' ). map (String :: from ). collect ();
180
+ let n = ss . len ();
181
+ if ss [0 ]. as_bytes ()[0 ] != ss [n - 1 ]. as_bytes ()[ss [n - 1 ]. len () - 1 ] {
182
+ return false ;
183
+ }
184
+ for i in 1 .. n {
185
+ if ss [i - 1 ]. as_bytes ()[ss [i - 1 ]. len () - 1 ] != ss [i ]. as_bytes ()[0 ] {
186
+ return false ;
187
+ }
188
+ }
189
+ return true ;
190
+ }
191
+ }
192
+ ```
193
+
156
194
### ** ...**
157
195
158
196
```
Original file line number Diff line number Diff line change
1
+ impl Solution {
2
+ pub fn is_circular_sentence ( sentence : String ) -> bool {
3
+ let ss: Vec < String > = sentence. split ( ' ' ) . map ( String :: from) . collect ( ) ;
4
+ let n = ss. len ( ) ;
5
+ if ss[ 0 ] . as_bytes ( ) [ 0 ] != ss[ n - 1 ] . as_bytes ( ) [ ss[ n - 1 ] . len ( ) - 1 ] {
6
+ return false ;
7
+ }
8
+ for i in 1 ..n {
9
+ if ss[ i - 1 ] . as_bytes ( ) [ ss[ i - 1 ] . len ( ) - 1 ] != ss[ i] . as_bytes ( ) [ 0 ] {
10
+ return false ;
11
+ }
12
+ }
13
+ return true ;
14
+ }
15
+ }
Original file line number Diff line number Diff line change
1
+ function isCircularSentence ( sentence : string ) : boolean {
2
+ const ss = sentence . split ( ' ' ) ;
3
+ const n = ss . length ;
4
+ if ( ss [ 0 ] [ 0 ] !== ss [ n - 1 ] [ ss [ n - 1 ] . length - 1 ] ) {
5
+ return false ;
6
+ }
7
+ for ( let i = 0 ; i < n - 1 ; i ++ ) {
8
+ if ( ss [ i ] [ ss [ i ] . length - 1 ] !== ss [ i + 1 ] [ 0 ] ) {
9
+ return false ;
10
+ }
11
+ }
12
+ return true ;
13
+ }
Original file line number Diff line number Diff line change @@ -163,6 +163,44 @@ var dividePlayers = function(skill) {
163
163
};
164
164
```
165
165
166
+ ### ** TypeScript**
167
+
168
+ ``` ts
169
+ function dividePlayers(skill : number []): number {
170
+ const n = skill .length ;
171
+ skill .sort ((a , b ) => a - b );
172
+ const target = skill [0 ] + skill [n - 1 ];
173
+ let ans = 0 ;
174
+ for (let i = 0 ; i < n >> 1 ; i ++ ) {
175
+ if (target !== skill [i ] + skill [n - 1 - i ]) {
176
+ return - 1 ;
177
+ }
178
+ ans += skill [i ] * skill [n - 1 - i ];
179
+ }
180
+ return ans ;
181
+ }
182
+ ```
183
+
184
+ ### ** Rust**
185
+
186
+ ``` rust
187
+ impl Solution {
188
+ pub fn divide_players (mut skill : Vec <i32 >) -> i64 {
189
+ let n = skill . len ();
190
+ skill . sort ();
191
+ let target = skill [0 ] + skill [n - 1 ];
192
+ let mut ans = 0 ;
193
+ for i in 0 .. n >> 1 {
194
+ if skill [i ] + skill [n - 1 - i ] != target {
195
+ return - 1 ;
196
+ }
197
+ ans += (skill [i ] * skill [n - 1 - i ]) as i64 ;
198
+ }
199
+ ans
200
+ }
201
+ }
202
+ ```
203
+
166
204
### ** ...**
167
205
168
206
```
Original file line number Diff line number Diff line change @@ -143,6 +143,44 @@ var dividePlayers = function(skill) {
143
143
};
144
144
```
145
145
146
+ ### ** TypeScript**
147
+
148
+ ``` ts
149
+ function dividePlayers(skill : number []): number {
150
+ const n = skill .length ;
151
+ skill .sort ((a , b ) => a - b );
152
+ const target = skill [0 ] + skill [n - 1 ];
153
+ let ans = 0 ;
154
+ for (let i = 0 ; i < n >> 1 ; i ++ ) {
155
+ if (target !== skill [i ] + skill [n - 1 - i ]) {
156
+ return - 1 ;
157
+ }
158
+ ans += skill [i ] * skill [n - 1 - i ];
159
+ }
160
+ return ans ;
161
+ }
162
+ ```
163
+
164
+ ### ** Rust**
165
+
166
+ ``` rust
167
+ impl Solution {
168
+ pub fn divide_players (mut skill : Vec <i32 >) -> i64 {
169
+ let n = skill . len ();
170
+ skill . sort ();
171
+ let target = skill [0 ] + skill [n - 1 ];
172
+ let mut ans = 0 ;
173
+ for i in 0 .. n >> 1 {
174
+ if skill [i ] + skill [n - 1 - i ] != target {
175
+ return - 1 ;
176
+ }
177
+ ans += (skill [i ] * skill [n - 1 - i ]) as i64 ;
178
+ }
179
+ ans
180
+ }
181
+ }
182
+ ```
183
+
146
184
### ** ...**
147
185
148
186
```
Original file line number Diff line number Diff line change
1
+ impl Solution {
2
+ pub fn divide_players ( mut skill : Vec < i32 > ) -> i64 {
3
+ let n = skill. len ( ) ;
4
+ skill. sort ( ) ;
5
+ let target = skill[ 0 ] + skill[ n - 1 ] ;
6
+ let mut ans = 0 ;
7
+ for i in 0 ..n >> 1 {
8
+ if skill[ i] + skill[ n - 1 - i] != target {
9
+ return -1 ;
10
+ }
11
+ ans += ( skill[ i] * skill[ n - 1 - i] ) as i64 ;
12
+ }
13
+ ans
14
+ }
15
+ }
Original file line number Diff line number Diff line change
1
+ function dividePlayers ( skill : number [ ] ) : number {
2
+ const n = skill . length ;
3
+ skill . sort ( ( a , b ) => a - b ) ;
4
+ const target = skill [ 0 ] + skill [ n - 1 ] ;
5
+ let ans = 0 ;
6
+ for ( let i = 0 ; i < n >> 1 ; i ++ ) {
7
+ if ( target !== skill [ i ] + skill [ n - 1 - i ] ) {
8
+ return - 1 ;
9
+ }
10
+ ans += skill [ i ] * skill [ n - 1 - i ] ;
11
+ }
12
+ return ans ;
13
+ }
You can’t perform that action at this time.
0 commit comments