Skip to content

Commit fdeb627

Browse files
committed
feat: add rust solution to lcci problem: No.17.11
No.17.11.Find Closest
1 parent 6ca0090 commit fdeb627

File tree

3 files changed

+67
-0
lines changed

3 files changed

+67
-0
lines changed

lcci/17.11.Find Closest/README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,30 @@ func abs(x int) int {
136136
}
137137
```
138138

139+
### **Rust**
140+
141+
```rust
142+
impl Solution {
143+
pub fn find_closest(words: Vec<String>, word1: String, word2: String) -> i32 {
144+
let mut res = i32::MAX;
145+
let mut index1 = -1;
146+
let mut index2 = -1;
147+
for (i, word) in words.iter().enumerate() {
148+
let i = i as i32;
149+
if word.eq(&word1) {
150+
index1 = i;
151+
} else if word.eq(&word2) {
152+
index2 = i;
153+
}
154+
if index1 != -1 && index2 != -1 {
155+
res = res.min((index1 - index2).abs());
156+
}
157+
}
158+
res
159+
}
160+
}
161+
```
162+
139163
### **...**
140164

141165
```

lcci/17.11.Find Closest/README_EN.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,30 @@ func abs(x int) int {
132132
}
133133
```
134134

135+
### **Rust**
136+
137+
```rust
138+
impl Solution {
139+
pub fn find_closest(words: Vec<String>, word1: String, word2: String) -> i32 {
140+
let mut res = i32::MAX;
141+
let mut index1 = -1;
142+
let mut index2 = -1;
143+
for (i, word) in words.iter().enumerate() {
144+
let i = i as i32;
145+
if word.eq(&word1) {
146+
index1 = i;
147+
} else if word.eq(&word2) {
148+
index2 = i;
149+
}
150+
if index1 != -1 && index2 != -1 {
151+
res = res.min((index1 - index2).abs());
152+
}
153+
}
154+
res
155+
}
156+
}
157+
```
158+
135159
### **...**
136160

137161
```

lcci/17.11.Find Closest/Solution.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
impl Solution {
2+
pub fn find_closest(words: Vec<String>, word1: String, word2: String) -> i32 {
3+
let mut res = i32::MAX;
4+
let mut index1 = -1;
5+
let mut index2 = -1;
6+
for (i, word) in words.iter().enumerate() {
7+
let i = i as i32;
8+
if word.eq(&word1) {
9+
index1 = i;
10+
} else if word.eq(&word2) {
11+
index2 = i;
12+
}
13+
if index1 != -1 && index2 != -1 {
14+
res = res.min((index1 - index2).abs());
15+
}
16+
}
17+
res
18+
}
19+
}

0 commit comments

Comments
 (0)