Skip to content

Commit 0a581bd

Browse files
committed
feat: add solutions to lc problems: No.2490, 2491
- No.2490.Circular Sentence - No.2491.Divide Players Into Teams of Equal Skill
1 parent 7d1f9dd commit 0a581bd

File tree

8 files changed

+211
-2
lines changed

8 files changed

+211
-2
lines changed

solution/2400-2499/2490.Circular Sentence/README.md

+40-1
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ func isCircularSentence(sentence string) bool {
153153
### **JavaScript**
154154

155155
```js
156-
var isCircularSentence = function(sentence) {
156+
var isCircularSentence = function (sentence) {
157157
const words = sentence.split(' ');
158158
const post = words[0].charCodeAt(0);
159159
let prev = words[0].charCodeAt(words[0].length - 1);
@@ -169,6 +169,45 @@ var isCircularSentence = function(sentence) {
169169
};
170170
```
171171

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+
172211
### **...**
173212

174213
```

solution/2400-2499/2490.Circular Sentence/README_EN.md

+39-1
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ func isCircularSentence(sentence string) bool {
137137
### **JavaScript**
138138

139139
```js
140-
var isCircularSentence = function(sentence) {
140+
var isCircularSentence = function (sentence) {
141141
const words = sentence.split(' ');
142142
const post = words[0].charCodeAt(0);
143143
let prev = words[0].charCodeAt(words[0].length - 1);
@@ -153,6 +153,44 @@ var isCircularSentence = function(sentence) {
153153
};
154154
```
155155

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+
156194
### **...**
157195

158196
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
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 numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
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+
}

solution/2400-2499/2491.Divide Players Into Teams of Equal Skill/README.md

+38
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,44 @@ var dividePlayers = function(skill) {
163163
};
164164
```
165165

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+
166204
### **...**
167205

168206
```

solution/2400-2499/2491.Divide Players Into Teams of Equal Skill/README_EN.md

+38
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,44 @@ var dividePlayers = function(skill) {
143143
};
144144
```
145145

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+
146184
### **...**
147185

148186
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
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 numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
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+
}

0 commit comments

Comments
 (0)