Skip to content

Commit ce686d7

Browse files
authored
feat: add rust solution to lc problem: No.2660 (#1106)
1 parent 9398b85 commit ce686d7

File tree

3 files changed

+91
-0
lines changed

3 files changed

+91
-0
lines changed

solution/2600-2699/2660.Determine the Winner of a Bowling Game/README.md

+32
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,38 @@ function isWinner(player1: number[], player2: number[]): number {
192192
}
193193
```
194194

195+
### **Rust**
196+
197+
```rust
198+
impl Solution {
199+
pub fn is_winner(player1: Vec<i32>, player2: Vec<i32>) -> i32 {
200+
let f = |arr: &Vec<i32>| -> i32 {
201+
let mut s = 0;
202+
203+
for i in 0..arr.len() {
204+
let mut k = 1;
205+
if (i > 0 && arr[i - 1] == 10) || (i > 1 && arr[i - 2] == 10) {
206+
k = 2;
207+
}
208+
s += k * arr[i];
209+
}
210+
211+
s
212+
};
213+
214+
let p1 = f(&player1);
215+
let p2 = f(&player2);
216+
if p1 > p2 {
217+
return 1
218+
} else if p1 < p2 {
219+
return 2
220+
} else {
221+
0
222+
}
223+
}
224+
}
225+
```
226+
195227
### **...**
196228

197229
```

solution/2600-2699/2660.Determine the Winner of a Bowling Game/README_EN.md

+32
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,38 @@ function isWinner(player1: number[], player2: number[]): number {
184184
}
185185
```
186186

187+
### **Rust**
188+
189+
```rust
190+
impl Solution {
191+
pub fn is_winner(player1: Vec<i32>, player2: Vec<i32>) -> i32 {
192+
let f = |arr: &Vec<i32>| -> i32 {
193+
let mut s = 0;
194+
195+
for i in 0..arr.len() {
196+
let mut k = 1;
197+
if (i > 0 && arr[i - 1] == 10) || (i > 1 && arr[i - 2] == 10) {
198+
k = 2;
199+
}
200+
s += k * arr[i];
201+
}
202+
203+
s
204+
};
205+
206+
let p1 = f(&player1);
207+
let p2 = f(&player2);
208+
if p1 > p2 {
209+
return 1
210+
} else if p1 < p2 {
211+
return 2
212+
} else {
213+
0
214+
}
215+
}
216+
}
217+
```
218+
187219
### **...**
188220

189221
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
impl Solution {
2+
pub fn is_winner(player1: Vec<i32>, player2: Vec<i32>) -> i32 {
3+
let f = |arr: &Vec<i32>| -> i32 {
4+
let mut s = 0;
5+
6+
for i in 0..arr.len() {
7+
let mut k = 1;
8+
if (i > 0 && arr[i - 1] == 10) || (i > 1 && arr[i - 2] == 10) {
9+
k = 2;
10+
}
11+
s += k * arr[i];
12+
}
13+
14+
s
15+
};
16+
17+
let p1 = f(&player1);
18+
let p2 = f(&player2);
19+
if p1 > p2 {
20+
return 1
21+
} else if p1 < p2 {
22+
return 2
23+
} else {
24+
0
25+
}
26+
}
27+
}

0 commit comments

Comments
 (0)