Skip to content

Commit 8acc980

Browse files
committed
feat: add solutions to lc problem: No.2452
No.2452.Words Within Two Edits of Dictionary
1 parent 2c02292 commit 8acc980

File tree

4 files changed

+125
-0
lines changed

4 files changed

+125
-0
lines changed

solution/2400-2499/2452.Words Within Two Edits of Dictionary/README.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,50 @@ func twoEditWords(queries []string, dictionary []string) (ans []string) {
149149
### **TypeScript**
150150

151151
```ts
152+
function twoEditWords(queries: string[], dictionary: string[]): string[] {
153+
const n = queries[0].length;
154+
return queries.filter(querie => {
155+
for (const s of dictionary) {
156+
let diff = 0;
157+
for (let i = 0; i < n; i++) {
158+
if (querie[i] !== s[i] && ++diff > 2) {
159+
break;
160+
}
161+
}
162+
if (diff <= 2) {
163+
return true;
164+
}
165+
}
166+
return false;
167+
});
168+
}
169+
```
152170

171+
### **Rust**
172+
173+
```rust
174+
impl Solution {
175+
pub fn two_edit_words(queries: Vec<String>, dictionary: Vec<String>) -> Vec<String> {
176+
let n = queries[0].len();
177+
queries
178+
.into_iter()
179+
.filter(|querie| {
180+
for s in dictionary.iter() {
181+
let mut diff = 0;
182+
for i in 0..n {
183+
if querie.as_bytes()[i] != s.as_bytes()[i] {
184+
diff += 1;
185+
}
186+
}
187+
if diff <= 2 {
188+
return true;
189+
}
190+
}
191+
false
192+
})
193+
.collect()
194+
}
195+
}
153196
```
154197

155198
### **...**

solution/2400-2499/2452.Words Within Two Edits of Dictionary/README_EN.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,50 @@ func twoEditWords(queries []string, dictionary []string) (ans []string) {
134134
### **TypeScript**
135135

136136
```ts
137+
function twoEditWords(queries: string[], dictionary: string[]): string[] {
138+
const n = queries[0].length;
139+
return queries.filter(querie => {
140+
for (const s of dictionary) {
141+
let diff = 0;
142+
for (let i = 0; i < n; i++) {
143+
if (querie[i] !== s[i] && ++diff > 2) {
144+
break;
145+
}
146+
}
147+
if (diff <= 2) {
148+
return true;
149+
}
150+
}
151+
return false;
152+
});
153+
}
154+
```
137155

156+
### **Rust**
157+
158+
```rust
159+
impl Solution {
160+
pub fn two_edit_words(queries: Vec<String>, dictionary: Vec<String>) -> Vec<String> {
161+
let n = queries[0].len();
162+
queries
163+
.into_iter()
164+
.filter(|querie| {
165+
for s in dictionary.iter() {
166+
let mut diff = 0;
167+
for i in 0..n {
168+
if querie.as_bytes()[i] != s.as_bytes()[i] {
169+
diff += 1;
170+
}
171+
}
172+
if diff <= 2 {
173+
return true;
174+
}
175+
}
176+
false
177+
})
178+
.collect()
179+
}
180+
}
138181
```
139182

140183
### **...**
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
impl Solution {
2+
pub fn two_edit_words(queries: Vec<String>, dictionary: Vec<String>) -> Vec<String> {
3+
let n = queries[0].len();
4+
queries
5+
.into_iter()
6+
.filter(|querie| {
7+
for s in dictionary.iter() {
8+
let mut diff = 0;
9+
for i in 0..n {
10+
if querie.as_bytes()[i] != s.as_bytes()[i] {
11+
diff += 1;
12+
}
13+
}
14+
if diff <= 2 {
15+
return true;
16+
}
17+
}
18+
false
19+
})
20+
.collect()
21+
}
22+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
function twoEditWords(queries: string[], dictionary: string[]): string[] {
2+
const n = queries[0].length;
3+
return queries.filter(querie => {
4+
for (const s of dictionary) {
5+
let diff = 0;
6+
for (let i = 0; i < n; i++) {
7+
if (querie[i] !== s[i] && ++diff > 2) {
8+
break;
9+
}
10+
}
11+
if (diff <= 2) {
12+
return true;
13+
}
14+
}
15+
return false;
16+
});
17+
}

0 commit comments

Comments
 (0)